Windowsマシンでどのプロセスがオーディオを再生しているかを検出するにはどうすればよいですか?つまり、サウンドカードを使用しているプロセスをどのように列挙すればよいですか?Windowsでオーディオを使用してプロセスを検出する
答えて
が、そこに、あなたは現在のプロセスを列挙するためにこれらを使用することができますが、マシン上のすべてのオーディオセッションを列挙することができますAPIです(または最近持っています)再生されたオーディオ。
これにはいくつかの重大な警告があります。たとえば、ASIOなどのサードパーティのオーディオスタックを使用するアプリケーションを検出することはできず、圧縮されたオーディオを(排他モードを使用して)レンダリングするアプリケーションを検出することはできません。しかし、アプリケーションのかなりの部分(98%?)については、IAudioSessionManager2インターフェイスを使用して、共有モードでオーディオをレンダリングしている(または最近レンダリングした)アプリケーションを列挙できるセッション列挙子を取得できます。
残念ながら、この機能はWindows 7のみです。
sysinternals(Microsoft)からプロセスエクスプローラをダウンロードしてください。インストールが完了すると、インタフェースクリックで
どちらか1もたらすでしょう、私は audioses.dll(オーディオセッション) とaudioeng.dll(オーディオエンジン)に入れて「ハンドルやDLL Vistaでは
を見つける」「見つけます」サウンドカードを使用できる/使用できるアプリのリストをアップしてください。
おかげで、Windows 7の上で -Mathew
プロセスエクスプローラは必要ありません。
ring3(古いFAQ、Googleグループ、Win32)からハンドルテーブルを列挙するだけです
ASIOのようなAPIのいくつかはこのようには見つかりません。すべての知識が古いFAQから来るわけではありません。新しい本を買う。 –
これらはwaveOutまたはDirectSound APIで使用するアプリケーションを含みますか? –
彼らが非圧縮オーディオを再生している場合、はい。 –