c语言调用外部程序,C/C++实施外部程序(调用外部exe程序)

C/C++执行外部程序(调用外部exe程序)

本文只做简单介绍,具体用法请参照MSDN。

C中的函数:

1.exec() 函数家族:

exec() 家族的函数将会创建一个新的进程来执行程序。(不能设置权限,只是单纯的传值执行exe)

_execl, _wexecl

_execv, _wexecv

_execle, _wexecle

_execve, _wexecve

_execlp, _wexeclp

_execvp, _wexecvp

_execlpe, _wexeclpe

_execvpe, _wexecvpe

具体使用例子msdn:ms-help://MS.MSDNQTR.v90.chs/dv_vccrt/html/a261df93-206a-4fdc-b8ac-66aa7db83bc6.htm

2.spawn()函数家族:

spawn() 家族的函数将会创建一个新的进程来执行程序。(不能设置权限,只是单纯的传值执行exe)

_spawnl, _wspawnl

_spawnv, _wspawnv

_spawnle, _wspawnle

_spawnve, _wspawnve

_spawnlp, _wspawnlp

_spawnvp, _wspawnvp

_spawnlpe, _wspawnlpe

_spawnvpe, _wspawnvpe

具体使用例子msdn:ms-help://MS.MSDNQTR.v90.chs/dv_vccrt/html/bb47c703-5216-4e09-8023-8cf25bbf2cf9.htm

3.system()函数

可用于执行控制台命令(DOS命令),比如

system("cls");//清屏,等于在DOS上使用cls命令

WIN32 API

1.WinExec()函数

只提供16位windows程序使用。(不能设置权限,只是单纯的传值执行exe)

⑴ 函数原型: UINT Win Exec(LPCSTR lpCmdLine, UINT uCmdShow);

⑵ 参数:

lpCmdLine:指向一个空结束的字符串,串中包含将要执行的应用程序的命令行(文件名加上可选参数)。

uCmdShow:定义Windows应用程序的窗口如何显示,并为CreateProcess函数提供STARTUPINFO参数的wShowWindow成员的值。

⑶ 返回值:

若函数调用成功,则返回值大于31。若函数调用失败,则返回值为下列之一:

① 0:系统内存或资源已耗尽。

② ERROR_BAD_FORMAT:EXE文件无效(非Win32.EXE或.EXE影像错误)。

③ ERROR_FILE_NOT_FOUND:指定的文件未找到。

④ ERROR_PATH_NOT_FOUND:指定的路径未找到。

虽然Microsoft认为WinExec已过时,但是在许多时候,简单的WinExec函数仍是运行新程序的最好方式。简单地传送作为第一个参数的 命令行,还需要决定如何显示程序(该程序也许会忽视它)的第二个参数。通常,将其设置为SW_SHOW,也可尝试SW_MINIMIZED或 SW_MAXIMIZED。WinExec不允许用CreateProcess获得的所有选项,而它的确简单。

2.ShellExecute()函数

ShellExecute不仅可以运行EXE文件,也可以运行已经关联的文件。

⑴标准用法

ShellExecute函数原型及参数含义如下:

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

●hWnd:用于指定父窗口句柄。当函数调用过程出现错误时,它将作为Windows消息窗口的父窗口。例如,可以将其设置为应用程序主窗口句柄,即Application.Handle,也可以将其设置为桌面窗口句柄(用GetDesktopWindow函数获得)。

●lpOperation:用于指定要进行的操作。其中“open”操作表示执行由FileName参数指定的程序,或打开由FileName参数指定的文件或文件夹;“print”操作表示打印由FileName参数指定的文件;“explore”操作表示浏览由FileName参数指定的文件夹。当参数设为nil时,表示执行默认操作“open”。

●lpFileName:用于指定要打开的文件名、要执行的程序文件名或要浏览的文件夹名。

●lpParameters:若FileName参数是一个可执行程序,则此参数指定命令行参数,否则此参数应为nil或PChar(0)。

●lpDirectory:用于指定默认目录。

●lpShowCmd:若FileName参数是一个可执行程序,则此参数指定程序窗口的初始显示方式,否则此参数应设置为0。

待续~~~~~~

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值