我正在尝试从其 pid 中获取进程名称。用户以管理员身份运行,启用 UAC,但未提升权限。
一些系统进程,如 services.exe
,以这样的方式设置它们的安全性 OpenProcess(PROCESS_QUERY_INFORMATION ...
失败并返回 ERROR_ACCESS_DENIED
。与 PROCESS_QUERY_LIMITED_INFORMATION
访问权限相同的结果。但是,我可以看到 Process Explorer 可以 至少列出所有这些进程,以及它们的 pid 和文件名(运行时作为非提升的管理员)。
我的问题是,鉴于非提升的管理员无法遵循 OpenProcess() + GetProcessImageFileName() 的通常路线,我该如何做同样的事情(从 pid 获取文件名)?
最佳答案
您是否尝试过使用由 CreateToolhelp32Snapshot() 检索的句柄来处理 Process32First() 和 Process32Next()?它不会为您提供完整路径,但至少应该让您获得文件名。
关于windows - 如果 OpenProcess() 因 ACCESS_DENIED 而失败,如何从 pid 获取进程文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9146498/