2011-05-21 15 views

cevap

3

Detours kullanılır. GetBuffer ve ReleaseBuffer da dahil olmak üzere IAudioRenderClient arabirimini kancalamak ve arabelleğindeki verileri okumak için lib'i kullanın.

+0

Deudio'ları kullanarak IAudioRenderClient'i nasıl bağladınız? IMMDeviceEnumerator, IMMDevice :: Activate ve IAudioClient :: GetService ile denedim. Ama ne yazık ki IMMDevice :: Activate çağrılmıyor gibi görünüyor. – Cthutu

-1

Uygulama tarafından sesin çalınması için kullanılan API'lara bağlı olarak, built-in waveIn \ waveOut işlevlerini sarmak ve ses verileri boyunca geçecek bir AppInit DLL yazabilirsiniz. Bunun waveIn \ waveOut işlevleri ile çalıştığını biliyorum, ancak Windows 7'de diğer ses oynatma arabirimlerinin ne olduğundan ve AppInit hilesiyle uyumlu olup olmadıklarından emin değilim. Çekme için

+0

AppInit'i kullanmayın, sadece askıya alınmış işlemi başlatın ve DLL'nizi enjekte edin - her iki durumda da hacky, ancak en azından makinedeki her uygulamayı etkilemezsiniz. –

+0

Doğru, ancak bir simge tıklatıldığında başlatılan askıya/başlatmaya zor: AppInit seçeneği oldukça iyi çalışıyor. Eğer çok dikkatli olmak istiyorsanız, askıya alma/enjekte etme hilesiyle uyumlu olacak bir görüntü kaçırma işlemi yapabilirsiniz: sadece bununla ilgili herhangi bir deneyiminiz yok. – Femi

+0

Lütfen AppInit'i hiçbir şey için kullanmayın, diğer uygulamaları çökertmek ve müşterilerinizin hayatlarını daha az müthiş hale getirmek neredeyse garantilidir. Hata ayıklayıcı API'ları kullanarak işlemleri askıya alabilir, DLL'nizi enjekte edebilir ve ardından isabet edebilirsiniz. –

İlgili konular