gpt4 book ai didi

c# - 如何识别 32 位进程

转载 作者:太空狗 更新时间:2023-10-30 01:26:07 25 4
gpt4 key购买 nike

我正在为审计应用程序编写一个 C# 插件,它需要获取在 64 位操作系统中运行的 32 位应用程序的列表。此时,我对如何识别 32 位进程感到困惑。

请帮帮我。

最佳答案

您可以使用 IsWow64Process Windows API 调用以确定进程是否在 64 位操作系统上的 32 位仿真下运行。

这是 pinvoke link

更新:我对此进行了一些基准测试,结果如下:

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

基本上:如果您能够处理在获取列表之后和设法查询它之前进程可能消失的事实,那么使用 pinvoke 方式对我来说似乎比使用 WMI 更快更快捷。尽管 WMI 可能是侵入性较小的方式(从进程的角度来看)。

关于c# - 如何识别 32 位进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5645428/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com