以管理员身份 CreateProcess 并获取其 ProcessInformation Like ProcessID

Posted

技术标签:

【中文标题】以管理员身份 CreateProcess 并获取其 ProcessInformation Like ProcessID【英文标题】:CreateProcess as Administrator and get its ProcessInformation Like ProcessID 【发布时间】:2016-03-08 23:45:36 【问题描述】:

我需要像 CreateProcess 这样的东西来以管理员身份运行进程,我没有访问它的清单,我还需要它的 ProcessID。我不需要在 shell 中使用 runas,因为它不会给我 ProcessID。

如果不可能,那么有什么功能可以检查吗?

【问题讨论】:

msdn.microsoft.com/en-us/library/windows/desktop/… @HansPassant 怎么样?!以管理员身份运行的任何示例? 此处为示例,只需提供管理员凭据:msdn.microsoft.com/en-us/library/windows/desktop/… 【参考方案1】:

使用 "runas" 动词调用 ShellExecuteEx() 以调用 UAC 提升。您可以指定SEE_MASK_NOCLOSEPROCESS 标志,以便SHELLEXECUTEINFO.hProcess 字段将接收生成的进程HANDLE。您可以使用GetProcessId() 查询其进程ID。使用完后一定要调用CloseHandle()关闭返回的HANDLE

【讨论】:

以上是关于以管理员身份 CreateProcess 并获取其 ProcessInformation Like ProcessID的主要内容,如果未能解决你的问题,请参考以下文章

Windows 7 CreateProcess,子进程无法写入文件?

调用 CreateProcess() 并获取字符串的返回值

windows 下在进程中使用createprocess创建一个窗口进程,并获取这个窗口HWND句柄

idea2021使用“svn“到项目报错Error:Cannot run program “svn“ (in directory “D:XXXXXX“):CreateProcess error=2,

idea2021使用“svn“到项目报错Error:Cannot run program “svn“ (in directory “D:XXXXXX“):CreateProcess error=2,

来自内存缓冲区的 CreateProcess