如何从c ++控制台应用程序执行.exe.我尝试了以下方法没有工作.
我想运行一个我创建了一段时间"Radio.exe"的应用程序.此应用程序在启动时读取xml文件,如果我手动运行此应用程序它工作正常,但如果通过控制台应用程序"Radio.exe"运行它无法找到xml文件?
void execute( char* path)
{
// cant find xml ?
ShellExecuteA( NULL, NULL, path, NULL, NULL, SW_SHOW );
// cant find xml ?
ShellExecute(NULL, NULL, path, NULL, NULL, SW_SHOWNORMAL);
// and also cant find xml ?
SHELLEXECUTEINFO rSEI ={0};
rSEI.cbSize=sizeof( rSEI );
rSEI.lpVerb= NULL;
rSEI.lpFile= "C:\\Users\\me\\Documents\\Radio.exe"; // = path
rSEI.lpParameters= 0;
rSEI.nShow = SW_NORMAL;
rSEI.fMask = SEE_MASK_NOCLOSEPROCESS;
ShellExecuteEx( &rSEI );
}
Run Code Online (Sandbox Code Playgroud)
你需要设置你的工作目录,lpDirectory:
http://msdn.microsoft.com/en-us/library/windows/desktop/bb762153(v=vs.85).aspx
您应该将其设置为路径相对,这样您就不必提供绝对路径.
例:
假设您生成radio.exe的程序位于项目目录中.你可以提供Radio目录作为相对路径.