私はWindows用の簡単なプロセス統計収集ライブラリを開発しています。関数を使用してプロセスを列挙しており、PROCESS_QUERY_INFORMATIONフラグを指定してプロセスEnumProcesses()
を開こうとしています。OpenProcess()
ただし、後者は一連のシステムプロセスで失敗します。同時に、同様のアプリケーション(sysinternalsツール、タスクマネージャーなど)は、管理者権限を必要とせずに、これらのプロセスに関する情報を取得できるようです。SeDebugPrivilege特権を有効にしようとしましたが、管理者としてプログラムを実行した場合にのみ役立ちました。それでも、アイドルプロセス、システムプロセス、およびaudiodgプロセスを開くことができませんでした(これらを取得できるようにしたい)一貫性のための情報も)。
したがって、問題は、すべてのプロセスに関する情報を取得するにはどうすればよいですか(サードパーティのアプリケーションによって実行されていることはわかりますが、方法がわかりません)。管理者権限なしでそれを行うことは可能ですか?