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;
}