1

Windows 系统进程(在此示例中为 Windows 7)“csrss.exe”作为 SYSTEM 进程运行,当我去(当然以编程方式)获取带有 pid、命令行和图像路径名称的进程列表时,我没有命令行或图像路径名称的值,因为 Windows 不会让您为 SYSTEM 进程获取该信息(我相信)。

有没有办法从系统进程中获取图像路径名?Windows 真的会阻止您这样做吗?有解决方法吗?

更新:调用 ReadProcessMemory() 函数

[http://msdn.microsoft.com/en-us/library/aa915312.aspx]

4

1 回答 1

1

使用CreateToolhelp32Snapshot执行此操作的简单方法(比 ReadProcessMemory 容易得多,如果您知道在哪里查找也可以),您将在该 MSDN 页面上看到更多参考;

TH32CS_SNAPPROCESS 0x00000002

在快照中包括系统中的所有进程。要枚举进程,请参阅Process32First

请注意,您可以使用 QueryFullProcessImageName函数从 32 位进程中检索 32 位和 64 位进程的可执行映像的全名。

szExeFile 进程的可执行文件的名称。要检索可执行文件的完整路径,请调用Module32First函数并检查返回的MODULEENTRY32结构的szExePath成员 。但是,如果调用进程是 32 位进程,则必须调用QueryFullProcessImageName 函数来检索 64 位进程的可执行文件的完整路径。

很简单。

于 2011-04-15T01:06:19.580 回答