How to get a process file name from pid, if OpenProcess() fails with ACCESS_DENIED?

前端 未结 3 1964
自闭症患者
自闭症患者 2020-12-18 22:26

I\'m trying to get a process name from its pid. User is running as Administrator, UAC enabled, not elevated.

Some system processes, like services.exe,

相关标签:
3条回答
  • 2020-12-18 23:00

    You can't open system processes (more precisely, processes running under another account - in this case user SYSTEM) without SE_DEBUG privilege enabled for your process. If you are running as admin, you can easily set the privilege: http://support.microsoft.com/kb/131065/en-us

    0 讨论(0)
  • 2020-12-18 23:22

    Have you tried Process32First() and Process32Next() with a handle retrieved by CreateToolhelp32Snapshot()? It doesn't give you the full path but should at least let you get the file name.

    0 讨论(0)
  • 2020-12-18 23:26

    Have you tried PROCESS_QUERY_LIMITED_INFORMATION instead? It requests a lower level of access that can provide at least the name of the executable. It allows you to call QueryFullProcessImageName which provides the information you're looking for

    • http://msdn.microsoft.com/en-us/library/windows/desktop/ms684919(v=vs.85).aspx
    0 讨论(0)
提交回复
热议问题