前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >VC 调用外部程序接口

VC 调用外部程序接口

作者头像
阳光岛主
发布2019-02-19 16:09:48
1.1K0
发布2019-02-19 16:09:48
举报
文章被收录于专栏:米扑专栏米扑专栏

(1) system()

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

  用 法: int system(char *command);

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

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

  样例:

代码语言:javascript
复制
            system("D:\\game.exe");         
代码语言:javascript
复制
            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文件

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2012年07月20日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档