• VC调用外部程序接口


    (1) system()

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

      用 法: int system(char *command);

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

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

      样例: system("D:\\game.exe");

    (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结构体中,便于操作,功能强大,但参数过多.


     

        

  • 相关阅读:
    GIS开发站点收藏
    读取Excel中的数据到DataSet
    SPSS统计功能与模块对照表
    相关性分析主要源码
    Matlab典型论坛
    EasyUI入门视频教程
    利用EF ORM Mysql实体运行程序出错解决方案
    小议
    六、 从Controller中访问模板数据(ASP.NET MVC5 系列)
    五、 创建连接串连接本地数据库(ASP.NET MVC5 系列)
  • 原文地址:https://www.cnblogs.com/xiehy/p/1778949.html
Copyright © 2020-2023  润新知