2011-05-21 32 views

回答

3

Detours用於掛鉤。使用lib鉤住IAudioRenderClient接口,包括GetBufferReleaseBuffer,並從緩衝區讀取數據。

+0

您是如何使用Detours掛接IAudioRenderClient的?我嘗試通過IMMDeviceEnumerator,IMMDevice :: Activate和IAudioClient :: GetService。但不幸的是IMMDevice :: Activate似乎沒有被調用。 – Cthutu 2013-05-08 13:45:52

-1

根據應用程序使用的播放音頻的API,您可以編寫一個AppInit DLL,它將包裝內置的waveIn \ waveOut函數並傳遞音頻數據。我知道這適用於waveIn \ waveOut函數,但不知道Windows 7上有哪些其他音頻播放界面,以及它們是否與AppInit技巧兼容。

+0

不要使用AppInit,只需啓動暫停的進程並注入DLL即可 - 無論哪種方式都很黑,但至少不會影響機器上的每個應用程序。 – 2011-05-21 21:55:07

+0

確實如此,但從圖標點擊開始暫停/注入很困難:AppInit選項工作得相當好。如果你想超級小心,你可以爲暫停/注入技巧兼容的可執行文件做圖像劫持:只是沒有任何經驗。 – Femi 2011-05-21 22:01:10

+0

請不要將AppInit用於任何事情,您幾乎可以保證讓其他應用程序崩潰,並讓您的客戶的生活變得不那麼棒。您可以通過使用調試器API暫停進程,注入DLL,然後打開。 – 2011-05-21 22:13:43