2024年4月19日发(作者:)
目前知道三种方式:WinExec,ShellExecute ,CreateProcess,别人已经总结的很好了
《vc中调用其他应用程序的方法(函数) winexec,shellexecute ,createprocess》,
我全文转载一下,另外后面加点自己的总结(黑体部分,除了标题)。
三个SDK函数: WinExec,ShellExecute ,CreateProcess可以实现调用其他程序的
要求,其中以WinExec最为简单,ShellExecute比WinExec灵活一些,CreateProcess
最为复杂。
WinExec 两个参数,前一个指定路径,后一个指定显示方式。
ShellExecute 可以指定工作目录,并且还可以寻找文件的关联直接打开不用加载与文
件关联的应用程序,ShellExecute还可以打开网页,启动相应的邮件关联发送邮件等等。
CreateProcess 一共有十个参数,不过大部分都可以用NULL代替,它可以指定进
程的安全属性,继承信息,类的优先级等等。如果我们要得到足够多的关于新的进程的信
息,控制新的进程的细节属性,若要达到这些目的,我们就需要使用CreateProcess函数
了。
三个SDK函数( WinExec、ShellExec、CrateProcess )的语法:
(一)WinExec
这个函数最简单,只有两个参数,原型如下:
UINT WinExec(
LPCSTR lpCmdLine, // 命令路径
UINT uCmdShow // 显示方式
);
使用方法如下:
WinExec("", SW_SHOW); // 打开记事本
WinExec("D:Program ",SW_SHOWMAXIMIZED); // 以最
大化的方式打开
需要注意的是若用 SW_SHOWMAXMIZED 方式去加载一个无最大化按钮的程序,
譬如Neterm,Calc 等等,就不会出现正常的 窗体,但是已经被加到任务列表里了。
这个函数只能打开exe文件。
需要的头文件:windows.h,winbase.h(前者是试验出来,后者是msdn上说明),
另外,这两者的先后顺序不能变。
msdn上的说明:
[url]/en-us/library/ms687393[/url](VS.85).aspx
(二)ShellExecute


发布评论