我目前正在寻找用等效的 win32 api 调用替换我所有使用 WMI 的代码。我这样做是因为我注意到 WMI 调用的执行时间比 win32 api 调用要长得多。一些例子可以在下面看到:
上市服务:
- wmi:~4秒
- winapi:~0.003 秒
列出打印机:
- wmi:~0.5 秒
- winapi:~0.009 秒
列出 Windows 用户:
- wmi:~0.5 秒
- winapi:~0.2 秒
是否可以替换所有 wmi 调用?作为一般规则,WMI 中可用的每个任务都可以通过 winapi 调用执行吗?
我已经设法替换了我的大部分 wmi 代码,但我还剩下以下内容:
- 创建还原点
- 枚举网络适配器
- 枚举分区
我在枚举网络适配器时遇到了一些困难。
还值得一提的是,我正在使用 python (2.7) 来执行所有这些调用(使用 ctypes、windll 和 win32 api 库,如 win32net、win32service 等......)。