現在、WMI を使用するすべてのコードを同等の win32 API 呼び出しに置き換えようとしています。これを行っているのは、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、およびwin32net、win32serviceなどのwin32 APIライブラリを使用して...)。