我正在为审计应用程序编写一个C#插件,它需要获取在64位操作系统内运行的32位应用程序列表。此时我对如何识别32位进程感到困惑。
请帮帮我。
答案 0 :(得分:2)
我认为WMI可以实现。
答案 1 :(得分:2)
您可以使用IsWow64Process
Windows API调用来确定进程是否在64位操作系统上以32位仿真运行。
以下是pinvoke link
更新:我对此进行了基准测试,结果如下:
Process.GetProcesses()
枚举所有流程需要花费大部分时间。我的笔记本电脑上运行了93个进程IsWow64Process
调用大约需要。在同一台笔记本电脑上每个进程0.1ms。基本上:如果您能够应对这样一个事实:在您获得列表之后以及在设法查询之前该过程可能会消失,那么使用pinvoke方式对我来说似乎比使用WMI更快更快捷。虽然WMI可能是较少侵入性的方式(从过程的角度来看)。