C++程序启动外部程序的方法总结0001

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

使用Win Exec命令

⑴函数原型:

UINT Win Exec(LPCSTR IpCmdLi ne, UINT uCmdShow);

⑵参数:

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

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

⑶返回值:

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

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

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

③ERROR_FILE_NOT_FOUN指定的文件未找到。

④ERROR_PATH_NOT_ FQU指定的路径未找到。

虽然Microsoft认为Win Exec已过时,但是在许多时候,简单的Win Exec函数仍是运行新程序的最好方式。简单地传送作为第一个参数的命令行,还需要决定如何显示程序(该程

序也许会忽视它)的第二个参数。通常,将其设置为SW_SHQW也可尝试SW_MINIMIZED或

SW_MAXIMIZE D WinExec不允许用CreateProcess 获得的所有选项,而它的确简单。

使用ShellExecute 命令

⑴函数原型:

HINSTANCE ShellExecute(HWND hwn d, LPCTSTR lpOperati on, LPCTSTR lpFile, LPCTSTR lpParameters, LPCTSTR lpDirectory, INT nSh owCmd);

⑵参数:

hwnd:指向父窗口的窗口句柄。此窗口接收应用程序产生的任何信息框。

IpOperation :—个空结束的字符串地址,此字符串指定要执行的操作。下面的操作字

符串是有效的:

"ope n ” 此函数打开由参数IpFile 指定的文件,此文件可以是一个可执行文件或文档文

件,也可是一个文件夹。

"pri nt "

此函数打印由参数IpFile 指定的文件,此文件应是一个文档文件,假如此文

件是一个可执行文件,则打开此文件。

"explore "

此函数搜索由参数IpFile 指定的文件夹,此文件应是一个文档文件,

此参数可以为空。这种情况下,函数用于打开由参数 lpFile 指定的文件。

lpFile : 一个空结束的字符串地址, 此字符串指定要打开或打印的文件或者是要打开或

搜索的文件夹。

lpParameters :假如参数lpFile 指定一个可执行文件,lpParameters 则是一个空结束 的字符串地

址,此字符串指定要传递给应用程序的参数。假如

lpFile 指定一个文档文件,

lpParameters 应为空。

lpDirectory :一个空结束的字符串地址,此字符串指定默认目录。

nShowCmd 假如lpFile 指定一个可执行文件,nShowCm 表明应用程序打开时如何显示。 假如lpFile

指定一个文档文件,nShowCm (应为空。

⑶返回值:

若函数调用成功,则返回值大于 32,否则为一个小于等于 32的错误值。

说明:可以用此函数打开或搜索一个外壳文件夹。打开文件夹可用下

面任何一种形式:

ShellExecute(ha ndle, RMAL);

NULL, path_to_folder, NULL, NULL, SW_SHOWNO

NULL, NULL, SW_SHOWNORMAL);

"open ShellExecute(ha ndle,

", path_to_folder.

搜索文件夹,可用如下形式

ShellExecute(ha ndle, "explore

", path_to_folder,

NULL, NULL, SW_SHOWNORMAL);

ShellExecute 命令虽已过时但易于得到。该命令向命令解释程序提出打开、浏览或打 印文档或文件

夹的请求,虽然可以用 ShellExecute 运行程序,但通常只发送文档名,而命

令解释程序则决定要运行那个程序。另外在打开目录文件夹时, ShellExecute 命令非常有

用。

⑷程序示例

下面通过一个例子来说名 Win Exec 和ShellExecute 的使用。下面程序有控制台程序示

例,其使用两种不同的方法,打开文本文件。下面程序使用 Win Exec ,并明确指定使用记事

本程序。然后,使用 ShellExecute,打开文本文件。

程序清单

#in clude #in clude

to continue ” , ” Progrm Launched" ,MB_OK);

n ;

(NULL,” open ” , ” readme.txt ” ,NULL,NULL,SW_SHOW)

使用 CreateProcess 命令

⑴函数原型:

BOOL CreateProcess(

void main (i nt argc,char { cout < < ” Opening with if (WinExec( "notepad MessagBox(NULL ” Can' t cout < < ” Press

*argv[])

n ;

readme.txt ” ,SH_SHOW) <32) Win Exec ” ,NULL,MB_OK); n ;

MessagBox(NULL, Press OK cout <

< ” Opening with if (ShellExecute

<(HANDLE) 32)

MessagBox(NULL ” Can' t

n ” ,NULL,MB_OK);

相关文档
最新文档