【发布时间】:2012-06-18 00:36:57
【问题描述】:
我正在查看任务管理器的进程列表,并启用查看 > 选择列 > 命令行以查看包含 exe 路径和命令行参数。
我尝试使用GetModuleFileNameEx 来实现相同的功能,但存在一些问题;首先,结果不包含任何参数,并且对于某些进程也会失败,例如 WinRar.exe 或 Opera.exe。
我知道任务管理器使用 WMI 来获取其中一些数据(我尝试关闭服务,但它失败了,就像我的脚本一样,对于相同的进程),但我想知道,是什么让进程的路径“无法获取” “?
【问题讨论】:
-
您的进程句柄是否拥有
GetModuleFileNameEx的必要访问权限? (PROCESS_QUERY_INFORMATION 和 PROCESS_VM_READ) -
是的,我把两个都传给了
OpenProcess。 -
只是不能直接从 winapi 获得。您可以使用 winternl.h 获得本机 api 的后门,足以获得这个。但是使用 Win32_Process 是受支持的方式。