0

如何从 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 );
}
4

1 回答 1

5

您需要设置工作目录 lpDirectory:

http://msdn.microsoft.com/en-us/library/windows/desktop/bb762153(v=vs.85).aspx

您可能也应该将其设置为相对路径,因此您不必提供绝对路径。

例子:

  • C:\项目\电台
  • C:\projects\Radio\radio.exe
  • C:\projects\Radio\radio.xml

假设生成 radio.exe 的程序位于项目目录中。您可以提供 Radio 目录作为相对路径。

于 2012-08-06T14:50:04.203 回答