尝试通过FPlatformProcess::CreateProc启动第三方程序,代码如下:
void AGameManager::LaunchExe()
{
if(FPaths::FileExists(TargetExeFullPath))
{
FProcHandle Handle = FPlatformProcess::CreateProc(*TargetExeFullPath, TEXT("P"), true, false, false, nullptr, 1, nullptr, nullptr);
}
}
异常如下:
LogWindows: Warning: CreateProc failed: 请求的操作需要提升。 (0x000002e4)
注意事项:
- CreateProc(~)函数的Parms参数,不要设定为nullptr,可给个随意的字符串。
- 必须检查文件路径是否存在。
- 路径内不能包含空格。
- 目标程序需要是绿色版或已经安装好的程序,不能是安装包。
- 路径尽量使用"/"符号,而不是"\\"。
另,路径和程序名,可有中文。
正确示例:C:/Windows/System32/notepad.exe
错误示例:C:/Program Files/ToDesk/ToDesk.exe 空格问题,会启动失败