如何识别32位进程

本文关键字:32位 进程 识别 何识别 | 更新日期: 2023-09-27 17:49:48

我正在为一个审计应用程序编写一个c#插件,它需要获取在64位操作系统中运行的32位应用程序的列表。在如何识别32位进程的问题上,我陷入了困境。

请帮帮我。

如何识别32位进程

您可以使用IsWow64Process windows API调用来确定进程是否在64位操作系统的32位模拟下运行。

这里是pinvoke链接

Update:我稍微测试了一下,得到以下结果:

  • 枚举具有Process.GetProcesses()的所有进程花费了大约的大部分时间。我的笔记本电脑上有93个进程在运行,12毫秒
  • 获取句柄并执行IsWow64Process呼叫耗时约。在同一台笔记本电脑上,每个进程0.1ms。
  • 获得所有具有WMI的过程耗时约。在同一台笔记本电脑上520ms(同时运行93个进程)。

基本上:如果你能处理这样一个事实,即在你获得列表之后,在你设法查询它之前,这个过程可能会消失,那么使用pinvoke的方式对我来说似乎比使用WMI更快、更快捷。尽管WMI可能是侵入性较低的方式(从流程的角度来看)。

看看http://social.msdn.microsoft.com/Forums/en-US/netfxtoolsdev/thread/491ea0b3-3e5b-4fa2-a2c3-2f1e485aed0c/.