Aracılığıyla paylaş


LowLevelMouseProc işlevi

Description

SetWindowsHookExA SetWindowsHookExWişleviyle kullanılan uygulama tanımlı veya kitaplık tanımlı geri çağırma işlevi./ Sistem, her yeni fare girişi olayı iş parçacığı giriş kuyruğuna gönderilmek üzere olduğunda bu işlevi çağırır.

HOOKPROC türü, bu geri çağırma işlevinin işaretçisini tanımlar. LowLevelMouseProc , uygulama tanımlı veya kitaplık tanımlı işlev adı için bir yer tutucudur.

LowLevelMouseProc , uygulama tanımlı veya kitaplık tanımlı işlev adı için bir yer tutucudur.

LRESULT CALLBACK LowLevelMouseProc(
  _In_ int    nCode,
  _In_ WPARAM wParam,
  _In_ LPARAM lParam
);

Parametreler

nCode [in]

Tür: int

Kanca yordamının iletinin nasıl işleneceğini belirlemek için kullandığı bir kod.

nCode sıfırdan küçükse, kanca yordamının daha fazla işlem yapmadan iletiyi CallNextHookEx işlevine geçirmesi ve CallNextHookEx tarafından döndürülen değeri döndürmesi gerekir.

Bu parametre aşağıdaki değerlerden biri olabilir.

Değer Anlamı
HC_ACTION 0 wParam ve lParam parametreleri fare iletisi hakkında bilgi içerir.

wParam [in]

Tür: WPARAM

Fare iletisinin tanımlayıcısı.

Bu parametre şu iletilerden biri olabilir: WM_LBUTTONDOWN, WM_LBUTTONUP, WM_MOUSEMOVE, WM_MOUSEWHEEL, WM_RBUTTONDOWN, WM_RBUTTONUP, WM_MBUTTONDOWN, WM_MBUTTONUP, WM_XBUTTONDOWN veya WM_XBUTTONUP.

lParam [in]

Tür: LPARAM

MSLLHOOKSTRUCT yapısının işaretçisi.

İade

Tür: LRESULT

nCode sıfırdan küçükse, kanca yordamı CallNextHookEx tarafından döndürülen değeri döndürmelidir.

nCode sıfırdan büyük veya sıfıra eşitse ve kanca yordamı iletiyi işlemediyse, CallNextHookEx'i çağırmanız ve döndürdüğü değeri döndürmeniz kesinlikle önerilir; aksi takdirde, WH_MOUSE_LL kancaları yüklü olan diğer uygulamalar kanca bildirimleri almaz ve sonuç olarak yanlış davranabilir.

Kanca yordamı iletiyi işlediyse, sistemin iletiyi kanca zincirinin veya hedef pencere yordamının geri kalanına geçirmesini önlemek için sıfır olmayan bir değer döndürebilir.

Açıklamalar

Uygulama, WH_MOUSE_LL kanca türünü ve SetWindowsHookExA/SetWindowsHookExW işlevine yapılan çağrıda kanca yordamının işaretçisini belirterek kanca yordamını yükler.

Bu kanca, onu yükleyen iş parçacığı bağlamında çağrılır. Çağrı, kancayı yükleyen iş parçacığına bir ileti gönderilerek yapılır. Bu nedenle, kancayı yükleyen iş parçacığının bir ileti döngüsü olmalıdır.

Fare girişi yerel fare sürücüsünden veya mouse_event işlevine yapılan çağrılardan gelebilir. Giriş , mouse_event çağrısından geliyorsa, giriş "eklenmiş" olur. Ancak , WH_MOUSE_LL kanca başka bir işleme dahil değildir. Bunun yerine bağlam, kancayı yükleyen işleme geri döner ve özgün bağlamında çağrılır. Ardından bağlam, olayı oluşturan uygulamaya geri döner.

Kanca yordamı, aşağıdaki kayıt defteri anahtarında LowLevelHooksTimeout değerinde belirtilen veri girdisinden daha kısa sürede bir iletiyi işlemelidir:

HKEY_CURRENT_USER\Control Panel\Desktop

Değer milisaniye cinsindendir. Kanca yordamı zaman aşımına uğradıysa, sistem iletiyi bir sonraki kancaya geçirir. Ancak Windows 7 ve sonraki sürümlerde kanca çağrılmadan sessizce kaldırılır. Uygulamanın kancanın kaldırılıp kaldırılmadığını bilmesinin bir yolu yoktur.

Windows 10 sürüm 1709 ve üzeri Sistemin izin verdiği maksimum zaman aşımı değeri 1000 milisaniyedir (1 saniye). LowLevelHooksTimeout değeri 1000'den büyük bir değere ayarlanırsa sistem varsayılan olarak 1000 milisaniyelik bir zaman aşımı kullanır.

Uyarı

Hata ayıklama kancaları bu tür düşük düzeyli fare kancalarını izleyemiyor. Uygulamanın düşük düzeyli kancalar kullanması gerekiyorsa, işi bir çalışan iş parçacığına geçiren ve hemen döndüren ayrılmış bir iş parçacığında kancaları çalıştırması gerekir. Uygulamanın düşük düzeyli kancalar kullanması gereken çoğu durumda, bunun yerine ham girişi izlemesi gerekir. Bunun nedeni, ham girişin diğer iş parçacıkları için hedeflenen fare ve klavye iletilerini düşük düzeyli kancalardan daha etkili bir şekilde zaman uyumsuz olarak izleyebilmesindendir. Ham giriş hakkında daha fazla bilgi için bkz . Ham Giriş.

Ayrıca bakınız

CallNextHookEx

mouse_event

KBDLLHOOKSTRUCT

MSLLHOOKSTRUCT

SetWindowsHookEx

WM_LBUTTONDOWN

WM_LBUTTONUP

WM_MOUSEMOVE

WM_MOUSEWHEEL

WM_RBUTTONDOWN

WM_RBUTTONUP

Kancalar

Kancalar Hakkında