1 system()函数

system()函数的作用是执行指令,该函数的格式为

int system(  const char *command   );

其中,参数command指定了要执行的指令。以下代码的作用是调用“e:\1.exe”程序。

system("e:\\1.exe");

在使用system()函数时,需要在程序中包含process.h或者stdlib.h头文件。

2 _execl()函数

_execl()函数的作用是导入并且执行新的子进程。该函数的格式为

intptr_t _execl(const char* cmdname, const char *arg0, ..., NULL);

该函数的第一个参数cmdname指定了要执行文件的路径;后面的arg系列的参数指定了执行该文件时的参数;最后一个参数必须是NULL。

_execl("e:\\1.exe","1", NULL);

以上代码的作用是调用了“e:\1.exe”程序,需要注意的是第二个参数必须是要执行文件的名称。

使用_execl()函数时,需要在程序中包含process.h头文件。

3 WinExec()函数

WinExec()函数的作用是执行指定的程序。该函数的格式为

UINT WINAPI WinExec(LPCSTR lpCmdLine, UINT uCmdShow);

其中,第一个参数lpCmdLine指定了要执行程序绝对路径;第二个参数uCmdShow指定了显示执行程序的选项。

WinExec("e:\\1.exe", SW_SHOW);

以上代码调用了“e:\1.exe”程序,SW_SHOW表示显示1.exe的窗口。

4 CreateProcess()函数

CreateProcess()函数的作用是在主线程中创建新的进程。该函数的格式为

BOOL WINAPI CreateProcess(_In_opt_    LPCTSTR               lpApplicationName,_Inout_opt_ LPTSTR                lpCommandLine,_In_opt_    LPSECURITY_ATTRIBUTES lpProcessAttributes,_In_opt_    LPSECURITY_ATTRIBUTES lpThreadAttributes,_In_        BOOL                  bInheritHandles,_In_        DWORD                 dwCreationFlags,_In_opt_    LPVOID                lpEnvironment,_In_opt_    LPCTSTR               lpCurrentDirectory,_In_        LPSTARTUPINFO         lpStartupInfo,_Out_       LPPROCESS_INFORMATION lpProcessInformation);

其中,参数lpApplicationName指定了要执行模块的名称;lpCommandLine指定了要执行的命令行;lpProcessAttributes指定了创建新进程的句柄能否被子进程所继承;lpThreadAttributeslpProcessAttributes指定了创建新进程的句柄能否被子线程所继承;bInheriteHandles指定了调用该函数的进程中每个可被继承的句柄是否被新进程继承;dwCreationFlags指定了优先类控制和进程创建的标志;lpEnvironment指定了新进程的环境区块;lpCurrentDirectory指定了要创建进程所在的路径;lpStartupInfo指定了创建进程时的信息;lpProcessInformation中保存了新创建进程的识别信息。

CreateProcess()函数的参数虽然非常多,但是仅仅使用该函数调用外部程序时,大多数的参数都可以设置为NULL或者0。

STARTUPINFO si;PROCESS_INFORMATION pi;ZeroMemory(&si, sizeof(si));si.cb = sizeof(si);ZeroMemory(&pi, sizeof(pi));CreateProcess(_T("e:\\1.exe"), NULL, NULL, NULL, false, 0, NULL, NULL, &si, &pi);

以上代码的作用是调用了“e:\1.exe”程序。

5 ShellExecute()函数

ShellExecute()函数的作用是完成在指定文件上的操作。该函数的格式为

HINSTANCE ShellExecute(HWND hwnd, LPCTSTR lpOperation, LPCTSTR lpFile, LPCTSTR lpParameters, LPCTSTR lpDirectory, INT nShowCmd);

其中,参数hwnd指定了所有者窗口的句柄,该窗口用来显示用户界面或者错误信息;lpOperation指定了在文件上的操作;lpFile指定了要操作的文件;lpParameters指定了传递给应用程序的参数;lpDirectory指定了默认的路径;nShowCmd指定了显示文件窗口的方式。

ShellExecute(NULL, _T("open"), _T("e:\\1.exe"), NULL, NULL, SW_SHOW);

以上代码的作用是调用了“e:\1.exe”程序,其中第二个参数_T("open")表示打开指定文件。

C++中实现调用外部程序的方法相关推荐

  1. PHP调用外部程序的方法解析

    很多情况下需要php调用其他程序如shell命令.shell脚本.可执行程序等等,此时需要使用到诸如exec/system/popen/proc_open等函数,每种函数有各自适合使用的场景以及需要注 ...

  2. Delphi环境中编写调用DLL的方法和技巧

    Delphi环境中编写调用DLL的方法和技巧 第一章 为什么要使用动态链接库(DLL) top 提起DLL您一定不会陌生,在Windows中有着大量的以DLL为后缀的文件,它们是保证Windows正常 ...

  3. Delphi中动态调用DLL的方法

    Delphi中动态调用dll的方法如下: function CallFunc(dllname, funcname: string; const param: array of const): DWOR ...

  4. python中如何调用类_python中如何调用类的方法

    类的方法的调用: 与普通的函数调用类似 1.类的内部调用:self.<方法名>(参数列表). 2.在类的外部调用:<实例名>.<方法名>(参数列表). 注意:以上两 ...

  5. ajax离开页面方法,jQuery中ajax调用当前页面方法

    $.ajax({ type: 'POST', url: 'AddressManager.aspx/GetProvince',//AddressManager.aspx当前页面 data: '{cach ...

  6. python中如何调用类的方法

    python中如何调用类的方法 类的方法的调用: 与普通的函数调用类似 1.类的内部调用:self.<方法名>(参数列表). 2.在类的外部调用:<实例名>.<方法名&g ...

  7. PHP调用外部程序的方法

    很多情况下需要php调用其他程序如shell命令.shell脚本.可执行程序等等,此时需要使用到诸如exec/system/popen/proc_open等函数,每种函数有各自适合使用的场景以及需要注 ...

  8. python怎么调用方法_python中怎么调用自己的方法

    展开全部 C/C++对Python的调用2113层次可5261以分为三个层次, (1) 高层次的调用, (2)纯Python调用, (3) Python方法的4102扩展(也就使向Python输出调用 ...

  9. matlab vb调用,VB程序中实现调用MATLAB的方法

    收稿日期:2000207227 作者简介:王跃强(1978-),男,硕士研究生,主要研究方向:光电检测及其自动化. 文章编号:1001-9081(2001)02-0095-02 VB 程序中实现调用M ...

  10. python中如何调用类方法_python中如何调用类的方法

    类的方法的调用: 与普通的函数调用类似 1.类的内部调用:self.(参数列表). 2.在类的外部调用:.(参数列表). 注意:以上两种调用方法中,提供的参数列表中都不用包括self. 演示一个类:w ...

最新文章

  1. Win64 驱动内核编程-14.回调监控文件
  2. TIPS FOR LIVING AT CAMBRIDGE
  3. aspnet_regsql
  4. error C2248: “CObject::CObject”: 无法访问 private 成员(在“CObject”类中声明) [问题点数
  5. 保持在Div 底部的方法
  6. MySQL Merge存储引擎
  7. 基于python、jupyter-notebook 的金融领域用户交易行为分析
  8. 《JavaScript高级程序设计》学习笔记 JavaScript基本(1)
  9. 全球与中国高精度漆包扁铜线市场深度研究分析报告
  10. 树莓派网络摄像头远程监控
  11. 双硬盘win10下安装ubuntu的方法
  12. Exchange Server 2010 部署全攻略(一)
  13. Opencv创建纯色图
  14. 天线3db波束宽度_波束宽度
  15. 834 计算机专业基础综合参考书,2018年上海大学834计算机科学专业基础综合考研复习资料...
  16. 微信开发 JS接口安全域名修改
  17. CVE-2021-42287、CVE-2021-42278域内提权漏洞
  18. 领悟《信号与系统》之 信号与系统的描述-下节
  19. 最大流——最大传输量
  20. 量化交易都有哪些主要的策略模型?

热门文章

  1. 使用curl清理Elasticsearch数据方法
  2. Chrome插件--》油猴的使用
  3. 油猴脚本(tampermonkey):百度网盘搜索引擎聚合
  4. win系统下非系统盘msdia.dll文件怎么处理
  5. java 智能一卡通系统_基于Java框架的银医一卡通系统设计
  6. 最好用的文件上传插件 bootstrap fileInput
  7. 百度图片api获取(包含获取原网址)
  8. Linux系统下如何复制粘贴文件(待更新)
  9. 睡眠时间 数据_我测试了Apple Watch睡眠追踪以节省您的时间和电池寿命
  10. 1、4G杂项:Air72XUX平台secure boot使用说明