如何识别32位进程
本文关键字:32位 进程 识别 何识别 | 更新日期: 2023-09-27 17:49:48
我正在为一个审计应用程序编写一个c#插件,它需要获取在64位操作系统中运行的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/.