![](/img/trans.png)
[英]error MSB3721 when building CUDA Samples for VS2010, WINDOWS7, 64BIT
[英]CreateProcess failed with error code '740' in Windows7 64bit
我在Windows 7 64位平台上使用VS2005。 我的一个应用程序正在尝试使用CreateProcess
API创建新流程。 在创建进程时,API返回错误0。我使用GetLastError()
检查了错误代码,得到740
: 请求的操作需要Elevation 。 尝试创建新进程的应用程序具有管理权限。
我使用以下代码创建过程:
// 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”。
尼克松
尝试使用ShellExecute()
函数代替CreateProcess()
更新:
CreateProcess()
创建具有相同权限的子进程,这是最底层的API ShellExecute/Ex()
将进程创建委托给外壳程序(外壳程序可以检测应用程序是否需要特权)。 如果清单文件允许以非管理员身份运行应用程序,则传递lpOperation=L"runas"
手动将其提升 _wsystem()
创建一个新的cmd.exe /c app.exe
进程(我想是通过CreateProcess
),从而将进程创建委托给命令提示符 您所犯的错误描述了该问题: 请求的操作需要标高 。 因此,您必须先开始:
由于在构建警告时会收到警告,因此您必须具有无效的清单。 UAC清单中没有requestedPrivileges
元素,而是requestedExecutionLevel
:
<requestedExecutionLevel
level="asInvoker|highestAvailable|requireAdministrator"
uiAccess="true|false"
/>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.