fark?

2012-05-23 9 views
16

İki çalışma arasındaki fark nedir? WH_KEYBOARD_LLi read için düşük seviye klavye giriş olaylarını izleyen bir kanca yordamını yükler. düşük seviye klavye olayları ne anlama geliyor?fark?

cevap

25

Meh, terime fazla odaklanma, hiçbir şeyi açıklığa kavuşturmaz. İkisi arasında büyük bir fark var. WH_KEYBOARD_LL, kendi programınızda uygulanacak geri çağırma gerektiren bir kanca kurar. Ve bir mesaj döngüsünü pompalamak zorundasınız, böylece Windows, bir klavye mesajı göndermek üzere olduğunda geri arama yapabilir. Bu, gitmeyi gerçekten çok kolaylaştırıyor.

WH_KEYBOARD çok farklı çalışır, çengelli işlemlere güvenli bir şekilde enjekte edilebilen bir DLL gerektirir. Bir işlemi etkilemeden DLL'leri enjekte etmenin kolay olmadığından, bunu yapmak zor bir şeydir. Özellikle 64 bit işletim sisteminde. Başka bir işlemin tuş vuruşu hakkında bilmesi gerekiyorsa ihtiyaç duyabileceğiniz süreçler arası iletişimle de ilgilenmiyor. Anahtar kaydedici gibi.

WH_KEYBOARD'ın avantajı, klavye durumuna erişimi olmasıdır. Windows'da işlem başına bir özelliktir. Anahtarları kendiniz yazmak için sanal tuşları çevirmek için kanca kullanmak istediğinizde, etkin klavye düzeni ve değiştirici ile ölü tuşların durumu gibi bir çok şey önemli. ToUnicodeEx() yöntemini harici bir işlemden güvenilir bir şekilde arayamazsınız.

Örnek bir kodla karşılaşmadan bir kanada sallanamazsınız, google size bol miktarda verecektir. Bu yüzden daha önce hiç böyle bir çengel yazmamışsanız, işe yaradığı bilinen bir şey kullandığınızdan emin olun, çok fazla kederden kaçınacaktır.

+0

_' "... uygulanacak geri arama gerektiren bir kanca yükler ..." '_. _callback_ ile ne demek istiyorsun? –

+1

Bir önceki soruda zaten size açıklanmış olduğundan emin olun. Eğer hala bu gizemli ise, temel winapi ve genel olarak programlama hakkında daha fazla bilgi edinene kadar bu projeyi rafta bırakmayı düşünün. Kancaların gitmesi önemsiz değildir. –

+0

, "kanca zincirinde bir sonraki yöntemi çağırmak anlamına gelir" diyemeyiz? _ –