您的位置:首页 > 运维架构 > Shell

c++本程序如何调用执行另一个程序WinExce,ShellExecute,CreateProcess

2016-11-11 22:29 423 查看

自己的程序展示

#include <iostream>
#include <Windows.h>
#include <ShellAPI.h>
using namespace std;
int main()
{
//////打开另一个程序
//WinExec("E:/CProgram/test_all_main/x64/Release/test_all_main.exe",SW_SHOW);

//////打开一个文件
//WinExec("C:\\Users\\Administrator\\Desktop\\niubi.txt",SW_SHOW);//////不能成功,不知道为啥啊

//////用指定程序打开指定文件
//WinExec("notepad.exe entrance.txt",SW_SHOW);

/////打开百度网页
//ShellExecute(NULL, TEXT("open"), TEXT("http://www.baidu.com"), TEXT(" "), TEXT(" "), SW_SHOWNORMAL);

/////打开另一个程序
//ShellExecute(NULL, TEXT("open"), TEXT("E:\\项目\\划线_all_camera_and_video\\video_draw_all\\x64\\Release\\划车位_入口_入侵.exe"), TEXT(" "), TEXT(" "), SW_SHOWNORMAL);

/////打开一个文件
ShellExecute(NULL,TEXT("open"),TEXT("E:\\项目\\划线_all_camera_and_video\\video_draw_all\\x64\\Release\\carPlace.txt"),TEXT(""),TEXT(""),SW_SHOWNORMAL);

/////指定程序文件
//ShellExecute(NULL,TEXT("open"),TEXT("notepad.exe entrance.txt"),TEXT(""),TEXT(""),SW_SHOWNORMAL);

//////发邮件
//ShellExecute(NULL,TEXT("open"),TEXT("mailto:nishinapp@yahoo.com"),TEXT(""),TEXT(""),SW_SHOWNORMAL);

/////////如何启动一个程序,直到它运行结束?
//SHELLEXECUTEINFO ShExecInfo = {0};
//ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);
//ShExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS;
//ShExecInfo.hwnd = NULL;
//ShExecInfo.lpVerb = NULL;
//ShExecInfo.lpFile = TEXT("E:/CProgram/test_all_main/x64/Release/test_all_main.exe");
//ShExecInfo.lpParameters = TEXT("");
//ShExecInfo.lpDirectory = NULL;
//ShExecInfo.nShow = SW_SHOW;
//ShExecInfo.hInstApp = NULL;
//ShellExecuteEx(&ShExecInfo);
//WaitForSingleObject(ShExecInfo.hProcess,INFINITE);

//////////如何启动一个程序,直到它运行结束?
//PROCESS_INFORMATION ProcessInfo;
//STARTUPINFO StartupInfo; //This is an [in] parameter
//ZeroMemory(&StartupInfo, sizeof(StartupInfo));
//StartupInfo.cb = sizeof(StartupInfo); //Only compulsory field
//if(CreateProcess(TEXT("E:/CProgram/test_all_main/x64/Release/test_all_main.exe"), NULL, NULL,NULL,FALSE,0,NULL, NULL,&StartupInfo,&ProcessInfo))
//{
//WaitForSingleObject(ProcessInfo.hProcess,INFINITE);
//CloseHandle(ProcessInfo.hThread);
//CloseHandle(ProcessInfo.hProcess);
//}
//else
//{
//  cout<<"失败了"<<endl;
//}

return 0;
}


参考的两篇重要的文章

里边说的很清楚我就不赘余了

【1】C++调用外部应用程序的方法的整理总结

【2】C/C++执行外部程序(调用外部exe程序)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: