使用控制台程序调用电脑上的其他运行程序

tech2022-08-21  142

1.通过搜索各种博客文章,发现可以通过WinExec,ShellExecute,system,CreateProcess四种方法实现,具体的实现方法如下

2.使用这些函数貌似需要用到kernal32.lib这个环境,我是在此下载的:Kernel32.Lib,下载完成后直接放在置于vs的安装目录的vc\lib\目录下,不需要再在项目属性里面进行设置。

3.每个函数的具体使用方法及参数说明,还没有去深究,可以自己去查查。

#include <iostream> //#include <shlobj.h> // 可替换为 windows.h #include <windows.h> #include <shellapi.h> #pragma comment(lib, "Kernel32.lib") using namespace std; int main() { string exePath; BOOL open = 0; exePath = "F:\\WYQappbox\\notepad\\Notepad++\\notepad++.exe"; //exePath = "C:\\Program Files (x86)\\Common Files\\IQIYI Video\\LStyle\\QyClient.exe"; //aiqiyi //open = WinExec(exePath.c_str(), SW_SHOWMAXIMIZED); //open = ShellExecute(NULL,"open","F:\\WYQappbox\\notepad\\Notepad++\\notepad++.exe","G:\\C++\\PtaQ\\DxfReader\\DxfReader\\DxfReader.h",NULL,SW_SHOWNORMAL); //system("F:\\WYQappbox\\notepad\\Notepad++\\notepad++.exe"); STARTUPINFO si; //一些必备参数设置 memset(&si, 0, sizeof(STARTUPINFO)); si.cb = sizeof(STARTUPINFO); si.dwFlags = STARTF_USESHOWWINDOW; si.wShowWindow = SW_SHOW; PROCESS_INFORMATION pi; //必备参数设置结束 open = CreateProcess(NULL,"F:\\WYQappbox\\notepad\\Notepad++\\notepad++.exe",NULL,NULL,FALSE,0,NULL,NULL,&si,&pi); if(!open){ cout<<"Create Fail!"<<endl; exit(1); }else{ cout<<"Sucess!"<<endl; } return 0; }

 

最新回复(0)