Bir windows kanca doğru şekilde kurabilirim, ancak MSDN'deki satırın kafasını karıştırıyorum "CallNextHookEx işlevinin bir sonraki kanca işlemine göre zincirlenmesi isteğe bağlıdır, ancak önemle önerilir. aksi taktirde, kanca takmış olan diğer uygulamalar kanca bildirimleri almaz ve sonuç olarak hatalı davranabilir. Bildirimin başka uygulamalar tarafından görülmesini kesinlikle engellemeniz gerekmedikçe, CallNextHookEx'i aramalısınız. ".Doğru şekilde nasıl kullanılırWindowsHookEx & CallNextHookEx
İyi bir programlama vatandaşı olmak ve bir sonraki çanı aramak istiyorum. Ama, benim kanca işlemi şöyle görünür: Kod benim ilgilendiğim biri değilse
LRESULT CALLBACK CBTProc(int code, WPARAM wp, LPARAM lp)
{
if (code != HCBT_CREATEWND)
{
// What do I do here? It's not the event I requested so how do I pass it on?
return 0;
}
// It's the code we want (create window)
CallNextHookEx(...);
...
}
yani, kanca işlemi ne olur? Bir sonraki kancayı nasıl ararım?
Düzenleme: Ana sorun, bir HHOOK SetWindowsHookEx döndürülen ve bu CallNextHookEx işlevine geçirilmesi gereken olmasıdır.
Güncelleme: Bu kanca parametre NT platformlarda göz ardı edilir görünüyor:
http://msdn.microsoft.com/en-us/library/ms644974.aspx
http://www.klenotic.com/pl/null_hhook/
Bu işe yaramaz çünkü CallNextHookEx bir HHOOK parametresi alır (SetWindowsHookEx'dan döndürülür). –
Üzgünüz, Cevabımı güncelleyeceğim. – Charlie
Hmm, orada bir şey olabilir. NT/XP/2003'te yok sayılan "hhk" parametresiyle ilgili özlemi kaçırdım. Şimdi biraz test yapalım. –