`
king_tt
  • 浏览: 2259885 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

VC 调用外部程序接口

 
阅读更多

(1) system()

  函数名: system
  功 能: 发出一个DOS命令

  用 法: int system(char *command);

  备 注: system函数已经被收录在标准c库中,可以直接调用

  返回值
    =-1:出现错误
    =0:调用成功但是没有出现子进程
    >0:成功退出的子进程的id

  样例:

      system("D:\\game.exe");     
            system("mmc.exe \"c:\\windows\\system32\\gpedit.msc\"");

(2) WinExec()

  函数原型:

    UINT WINAPI WinExec(
       __in LPCSTR lpCmdLine,
       __in UINT uCmdShow);
  参数说明:
    lpCmdLine,  // 命令路径

    uCmdShow,  // 显示方式,共有11种,具体可以查阅MSDN的ShowWindow函数

  返回值:

    成功,返回值大于31

    返回0表示内存或者资源溢出

    返回ERROR_BAD_FORMAT表示exe文件非法或者已损坏。

    返回ERROR_FILE_NOT_FOUND指定的文件没有找到。

    返回ERROR_PATH_NOT_FOUND找不到指定路径

  样例:

    WinExec("Notepad.exe", SW_SHOW); // 打开记事本

    WinExec("D:\\Program Files\\Test\\Test.exe",SW_SHOWMAXIMIZED); // 以最大化的方式打开Test.exe(注意文件名的大小写也必须完全一样)

(3) ShellExecute()

  函数原型:   

  HINSTANCE ShellExecute(


    HWND hwnd,   //父窗口句柄

      LPCTSTR lpOperation, //操作, 打开方式"edit","explore","open","find","print","NULL"

      LPCTSTR lpFile,   //文件名,前面可加路径

      LPCTSTR lpParameters, //参数

      LPCTSTR lpDirectory, //默认文件夹

      INT nShowCmd   //显示方式

       );
  用例: 

ShellExecute(NULL,"open","C:\\Test.txt",NULL,NULL,SW_SHOWNORMAL); // 打开C:\Test.txt 文件        

(4) CreateProcess() 

  函数原型:

  BOOL CreateProcess(
   LPCTSTR lpApplicationName, //执行程序名

    LPTSTR lpCommandLine, // 参数行

    //下面两个参数描述了所创建的进程和线程的安全属性,如果为NULL则使用默认的安全属性

    LPSECURITY_ATTRIBUTES lpProcessAttributes, //进程安全属性

     LPSECURITY_ATTRIBUTES lpThreadAttributes, // 线程安全属性

    BOOL bInheritHandles, // 继承标志

    DWORD dwCreationFlags, // 创建标志

    LPVOID lpEnvironment, // 环境变量

    LPCTSTR lpCurrentDirectory, // 运行该进程的初始目录

    LPSTARTUPINFO lpStartupInfo, // 用于在创建子进程时设置各种属性

    LPPROCESS_INFORMATION lpProcessInformation //用于在进程创建后接受相关信息

    );

评论:

  system(),主要用在DOS环境下.

  WinExec(),简单实用,方便打开执行进程,但不能操作控制进程。

  ShellExecute(),增强了操作能力,但对进程的控制还是不够用。

  CreateProcess(),目前最强劲的进程函数,通过设置StartupInfo结构体参数,来设置子进程的属性,子进程创建后的信息也保存在ProcessInformation结构体中,便于操作,功能强大,但参数过多.


参考推荐:

VC 调用外部程序接口

VC调用系统运行程序

VC中调用外部程序方式总结

VC打开系统msc、cpl文件


分享到:
评论

相关推荐

    VC 在ActiveX中动态调用外部DLL函数.rar

    本文将深入探讨如何在ActiveX控件中动态调用外部的DLL(动态链接库)函数,这对于扩展ActiveX功能或者实现特定任务非常有用。 首先,我们需要理解DLL的本质。DLL是一种共享库,它包含可由多个程序同时使用的代码和...

    VC调用matlab7.10的接口程序实例

    MATLAB通过实现COM服务器,使得VC等外部程序能够创建和控制MATLAB对象,执行MATLAB代码,读写MATLAB变量,以及调用MATLAB函数。 在VC中调用MATLAB COM接口的步骤大致如下: 1. **导入MATLAB类型库**:在VC项目中,...

    vc调用C#编写的DLL

    总结来说,通过C#编写DLL并使用VC调用,我们可以实现C++与.NET框架的交互。这种技术在需要结合C++的高性能和C#的高级功能时非常有用。不过,需要注意的是,跨语言调用可能会引入一些兼容性问题,因此在实际应用中...

    VC执行一个外部程序并等待其结束

    在VC++中,我们可以直接调用这个API来执行外部程序。 ```cpp STARTUPINFO si; PROCESS_INFORMATION pi; ZeroMemory(&si, sizeof(si)); si.cb = sizeof(si); ZeroMemory(&pi, sizeof(pi)); BOOL result = ...

    VC资料(关于调用外部资源的)

    总结来说,"VC资料(关于调用外部资源的)"涵盖的内容广泛,从基础的文件操作到复杂的系统API调用,再到与Office等应用程序的集成,都是VC开发中不可或缺的知识点。通过学习这些内容,开发者可以更好地掌握在VC环境...

    用Java调用VC音量控制程序

    2. **音量控制程序的调用**:`initVolume()`方法实现了对外部VC程序的调用。 - 获取当前路径:通过自定义的`mngPathTool`类获取当前路径。 - 执行VC程序:使用`Runtime.getRuntime().exec(command)`方法执行VC程序...

    VC调用大漠插件

    在IT领域,开发人员经常需要使用各种工具和插件来扩展程序的功能,"VC调用大漠插件"就是这样一个示例。Visual C++(简称VC)是Microsoft提供的一款强大的C++集成开发环境,而“大漠插件”则是一个在特定场景下,如...

    vc调用goolge天气预报接口(原创)

    ### 使用VC调用Google天气预报接口 在本文中,我们将详细介绍如何使用Visual C++ (VC) 的 `CInternetSession` 类来访问Google提供的天气预报API并解析返回的XML数据流。这种方法同样适用于C#等其他.NET语言的移植。...

    Delphi 调用VC DLL

    导出函数是DLL提供给外部调用的接口,通常使用`__declspec(dllexport)`关键字标记。例如: ```cpp extern "C" __declspec(dllexport) int Add(int a, int b) { return a + b; } ``` 2. **头文件定义**:创建对应...

    flash vc 调用

    以上就是VC调用Flash的基本流程,实际应用中可能需要考虑更多的细节,比如错误处理、资源释放等。在项目中,你可能还需要处理Flash与VC之间的数据类型转换,以及异步调用的问题。记得在完成操作后释放所有使用的COM...

    VC检测USB接口中插拔外部设备

    在本文中,我们将深入探讨...综上所述,通过VC编写程序检测USB接口中的外部设备插拔涉及理解USB设备原理、Windows API接口以及事件驱动编程。通过合理的代码组织和测试,我们可以创建出一个功能完善的USB设备监控工具。

    VC-dll.rar_et199 vc 6 d_vc 调用DLL_vc dll

    1. **定义接口**:在DLL项目中,你需要定义一个头文件,其中包含将被外部应用程序调用的函数声明。这些函数的参数和返回类型需要明确,以便其他程序可以正确地调用它们。 2. **实现接口**:接着,你需要在DLL的...

    Delphi 调用VC生成的DLL

    总结来说,"Delphi 调用VC生成的DLL"涉及到不同编程环境间的接口调用,理解DLL的工作原理和不同编程语言之间的数据类型转换是关键。正确配置和调用DLL可以极大地增强应用程序的功能,同时保持代码的组织性和可维护性...

    VC调用LabView动态库所需要的.H头文件

    1. **extcode.h**:这个头文件包含了LabVIEW外部函数接口(External Function Interface, EFI)的定义。LabVIEW中的函数通过EFI暴露给其他编程语言,如C++。`extcode.h`定义了LabVIEW数据类型和函数原型,使VC程序...

    C#程序调用VC++程序动态库

    `DllImport`特性告诉.NET框架该函数是从外部DLL导入的,`CallingConvention`指定调用约定,这里是C风格的`StdCall`。 5. **调用DLL函数**:现在,C#可以直接像调用本地方法一样调用VC++的函数: ```csharp int ...

    vc++调用批处理程序

    在IT行业中,编程语言间的交互是常见的需求,例如在C++程序中调用其他外部工具或脚本。...记住,调用外部程序时要考虑到安全性,避免潜在的注入攻击,并确保正确处理资源释放,以保持程序的健壮性。

    maltab基础-基于COM的VC调用Matlab的方法及实现.pdf

    在探讨基于COM的VC调用Matlab的方法及实现之前,我们需要先了解Matlab与VC(Visual C++)在工程...在实现基于COM的VC调用Matlab时,还需注意Windows平台的兼容性和安全性问题,确保VC调用Matlab程序的稳定性和可靠性。

    MFC调用EXCEL接口

    Excel作为Microsoft Office套装的一部分,提供了丰富的COM(Component Object Model)接口,使得外部程序可以通过这些接口操作Excel文档。COM是一种语言无关的二进制标准,它定义了组件如何进行通信,包括跨进程和跨...

    vc调用matlab编译器生成dll示例1

    首先,`vc调用matlab编译器生成dll示例1`标题表明这是一个关于如何在VC++(可能是版本6,即Vc6)中通过MATLAB Compiler创建DLL,并进行调用的实例教程。MATLAB Compiler允许我们将MATLAB脚本或函数转换为可与其他...

    vc调用matlab

    MATLAB引擎库是MATLAB提供的一种接口,允许外部应用程序(如VC程序)通过C/C++语言调用MATLAB函数。这种方式主要适用于需要在VC程序中嵌入MATLAB代码的情况。 **步骤如下:** 1. **初始化MATLAB引擎:** 在VC程序...

Global site tag (gtag.js) - Google Analytics