资源描述:
《vc中调用其他应用程序.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、vc中调用其他应用程序三个SDK函数:WinExec,ShellExecute,CreateProcess可以实现调用其他程序的要求,其中以WinExec最为简单,ShellExecute比WinExec灵活一些,CreateProcess最为复杂。WinExec两个参数,前一个指定路径,后一个指定显示方式。ShellExecute可以指定工作目录,并且还可以寻找文件的关联直接打开不用加载与文件关联的应用程序,ShellExecute还可以打开网页,启动相应的邮件关联发送邮件等等。CreateProcess一共有十个参数,不过大部分都可以用NU
2、LL代替,它可以指定进程的安全属性,继承信息,类的优先级等等。如果我们要得到足够多的关于新的进程的信息,控制新的进程的细节属性,若要达到这些目的,我们就需要使用CreateProcess函数了。WinExec,ShellExecute,CreateProcess使用WinExec命令⑴函数原型:UINTWinExec(LPCSTRlpCmdLine,UINTuCmdShow);⑵参数:lpCmdLine:指向一个空结束的字符串,串中包含将要执行的应用程序的命令行(文件名加上可选参数)。uCmdShow:定义Windows应用程序的窗口如何显示,
3、并为CreateProcess函数提供STARTUPINFO参数的wShowWindow成员的值。⑶返回值:若函数调用成功,则返回值大于31。若函数调用失败,则返回值为下列之一:①0:系统内存或资源已耗尽。②ERROR_BAD_FORMAT:EXE文件无效(非Win32.EXE或.EXE影像错误)。③ERROR_FILE_NOT_FOUND:指定的文件未找到。④ERROR_PATH_NOT_FOUND:指定的路径未找到。虽然Microsoft认为WinExec已过时,但是在许多时候,简单的WinExec函数仍是运行新程序的最好方式。简单地传送作
4、为第一个参数的命令行,还需要决定如何显示程序(该程序也许会忽视它)的第二个参数。通常,将其设置为SW_SHOW,也可尝试SW_MINIMIZED或SW_MAXIMIZED。WinExec不允许用CreateProcess获得的所有选项,而它的确简单。使用ShellExecute命令⑴函数原型:HINSTANCEShellExecute(HWNDhwnd,LPCTSTRlpOperation,LPCTSTRlpFile,LPCTSTRlpParameters,LPCTSTRlpDirectory,INTnShowCmd);⑵参数:hwnd:指向父
5、窗口的窗口句柄。此窗口接收应用程序产生的任何信息框。lpOperation:一个空结束的字符串地址,此字符串指定要执行的操作。下面的操作字符串是有效的:"open"此函数打开由参数lpFile指定的文件,此文件可以是一个可执行文件或文档文件,也可是一个文件夹。"print"此函数打印由参数lpFile指定的文件,此文件应是一个文档文件,假如此文件是一个可执行文件,则打开此文件。"explore"此函数搜索由参数lpFile指定的文件夹,此文件应是一个文档文件,此参数可以为空。这种情况下,函数用于打开由参数lpFile指定的文件。lpFile:一
6、个空结束的字符串地址,此字符串指定要打开或打印的文件或者是要打开或搜索的文件夹。lpParameters:假如参数lpFile指定一个可执行文件,lpParameters则是一个空结束的字符串地址,此字符串指定要传递给应用程序的参数。假如lpFile指定一个文档文件,lpParameters应为空。lpDirectory:一个空结束的字符串地址,此字符串指定默认目录。nShowCmd:假如lpFile指定一个可执行文件,nShowCmd表明应用程序打开时如何显示。假如lpFile指定一个文档文件,nShowCmd应为空。⑶返回值:若函数调用成功
7、,则返回值大于32,否则为一个小于等于32的错误值。说明:可以用此函数打开或搜索一个外壳文件夹。打开文件夹可用下面任何一种形式:ShellExecute(handle,NULL,path_to_folder,NULL,NULL,SW_SHOWNORMAL);或ShellExecute(handle,"open",path_to_folder,NULL,NULL,SW_SHOWNORMAL);搜索文件夹,可用如下形式ShellExecute(handle,"explore",path_to_folder,NULL,NULL,SW_SHOWNORM
8、AL);ShellExecute命令虽已过时但易于得到。该命令向命令解释程序提出打开、浏览或打印文档或文件夹的请求,虽然可以用ShellExecute