【发布时间】:2012-10-27 10:28:06
【问题描述】:
我在 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”。
问候, 尼克松
【问题讨论】:
-
CreateProcess函数的进程和线程属性填写了吗?你能告诉我们那个代码吗?您是否考虑过 ShellExecuteEx?
-
实际上我的父应用程序正在启动 DCOM 服务器,我正在尝试从 DCOM 模块创建新进程。请参阅下面的代码部分。 `// 使用修改后的层信息创建流程 int nRetVal = CreateProcess( (LPSTR)strFullPath.c_str(), (LPSTR)strCmdLine.c_str(), 0, 0, FALSE, 0 , 0, (LPSTR)strWorkingDir.c_str( ), //NULL, &StartupInfo, &ProcInfo );'
标签: c++ windows-7 visual-studio-2005 uac