我在Windows 7 64位平台上使用VS2005。我的一个应用程序是尝试使用CreateProcess
API创建新流程。在创建流程时,API会返回错误0.我使用GetLastError()
检查了错误代码,我得到了740
:请求的操作需要提升。尝试创建新进程的应用程序具有管理权限。
我使用以下代码创建进程:
// Create the process using modified stratup info
int nRetVal = CreateProcess( (LPSTR)strFullPath.c_str(),
(LPSTR)strCmdLine.c_str(),
0, 0, FALSE, 0 , 0,
(LPSTR)strWorkingDir.c_str(),
//NULL,
&StartupInfo, &ProcInfo );
如何在不关闭UAC的情况下从我的应用程序启动新进程?
在构建父应用程序时,我收到以下警告:
App.manifest:清单创作警告81010002:名称空间“urn:schemas-microsoft-com:asm.v2”中无法识别的元素“requestedPrivileges”。
此致 尼克松
答案 0 :(得分:2)
您所遇到的错误描述了此问题:请求的操作需要提升。所以你必须从它开始:
由于您在构建时收到警告,因此您必须拥有无效的清单。 UAC manifest没有requestedPrivileges
元素,而是requestedExecutionLevel
:
<requestedExecutionLevel
level="asInvoker|highestAvailable|requireAdministrator"
uiAccess="true|false"
/>