Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Description
A SetWindowsHookExA/SetWindowsHookExW függvényhez használt alkalmazás által definiált vagy kódtár által definiált visszahívási függvény. A rendszer minden alkalommal meghívja ezt a függvényt, amikor új egérbemeneti eseményt szeretne közzétenni egy szálbemeneti üzenetsorba.
A HOOKPROC típus a visszahívási függvény mutatóját határozza meg. A LowLevelMouseProc az alkalmazás által definiált vagy tár által definiált függvénynév helyőrzője.
A LowLevelMouseProc az alkalmazás által definiált vagy tár által definiált függvénynév helyőrzője.
LRESULT CALLBACK LowLevelMouseProc(
_In_ int nCode,
_In_ WPARAM wParam,
_In_ LPARAM lParam
);
Paraméterek
nCode [in]
Típus: int
Egy kód, amelyet a horog eljárás használ az üzenet feldolgozásának meghatározására.
Ha az nCode kisebb, mint nulla, a horog eljárásnak további feldolgozás nélkül kell átadnia az üzenetet a CallNextHookEx függvénynek, és a CallNextHookEx által visszaadott értéket kell visszaadnia.
Ez a paraméter az alábbi értékek egyike lehet.
| Érték | Meaning |
|---|---|
| HC_ACTION 0 | A wParam és az lParam paraméterek információt tartalmaznak egy egérüzenetről. |
wParam [in]
Típus: WPARAM
Az egérüzenet azonosítója.
Ez a paraméter a következő üzenetek egyike lehet: WM_LBUTTONDOWN, WM_LBUTTONUP, WM_MOUSEMOVE, WM_MOUSEWHEEL, WM_RBUTTONDOWN, WM_RBUTTONUP, WM_MBUTTONDOWN, WM_MBUTTONUP, WM_XBUTTONDOWN vagy WM_XBUTTONUP.
lParam [in]
Típus: LPARAM
Egy MSLLHOOKSTRUCT-struktúra mutatója.
Visszatérítések
Típus: LRESULT
Ha az nCode kisebb, mint nulla, a horog eljárásnak a CallNextHookEx által visszaadott értéket kell visszaadnia.
Ha az nCode értéke nagyobb vagy egyenlő nullánál, és a horog eljárás nem dolgozza fel az üzenetet, erősen ajánlott meghívni a CallNextHookEx-et , és visszaadni a visszaadott értéket; ellenkező esetben a WH_MOUSE_LL horgokat telepített egyéb alkalmazások nem kapják meg a horogértesítéseket, és ennek következtében helytelenül viselkedhetnek.
Ha a horog eljárás feldolgozta az üzenetet, előfordulhat, hogy nemero értéket ad vissza, hogy a rendszer ne adja át az üzenetet a horoglánc többi részére vagy a célablak eljárásának.
Megjegyzések
Az alkalmazás a WH_MOUSE_LL horogtípus és a SetWindowsHookExA/SetWindowsHookExW függvény hívásában a horog eljárásra mutató mutatóval telepíti a horog eljárást.
Ezt a horogot a telepített szál kontextusában hívjuk meg. A hívás úgy történik, hogy üzenetet küld a horogot telepítő szálnak. Ezért a horogra telepített szálnak üzenethurkot kell tartalmaznia.
Az egér bemenete a helyi egérillesztőből vagy a mouse_event függvény hívásaiból származhat. Ha a bemenet egy mouse_event hívásából származik, a bemenet "injektálva" lett. A WH_MOUSE_LL horgot azonban nem injektálják egy másik folyamatba. Ehelyett a környezet visszaáll arra a folyamatra, amely telepítette a horogot, és az eredeti környezetben hívja meg. Ezután a környezet visszavált az eseményt létrehozó alkalmazásra.
A horogkezelési eljárásnak kevesebb idő alatt kell feldolgoznia egy üzenetet, mint a LowLevelHooksTimeout értékben megadott adatbevitel a következő beállításkulcsban:
HKEY_CURRENT_USER\Control Panel\Desktop
Az érték ezredmásodpercben van. Ha a horog eljárás túllépi az időkorlátot, a rendszer átadja az üzenetet a következő horognak. Windows 7 és újabb rendszereken azonban a horog csendesen el lesz távolítva anélkül, hogy meghívták. Az alkalmazás nem tudja, hogy a horog el lett-e távolítva.
Windows 10 1709-es és újabb verzió A rendszer által megengedett maximális időtúllépési érték 1000 ezredmásodperc (1 másodperc). A rendszer alapértelmezés szerint 1000 ezredmásodperc időtúllépést használ, ha a LowLevelHooksTimeout értéke 1000-nél nagyobb értékre van állítva.
Megjegyzés:
A hibakeresési horgok nem tudják nyomon követni az ilyen típusú alacsony szintű egérhorogokat. Ha az alkalmazásnak alacsony szintű horgokat kell használnia, a horgokat egy dedikált szálon kell futtatnia, amely átadja a munkát egy feldolgozó szálnak, majd azonnal visszatér. A legtöbb esetben, amikor az alkalmazásnak alacsony szintű horgokat kell használnia, inkább a nyers bemenetet kell figyelnie. Ennek az az oka, hogy a nyers bemenet képes aszinkron módon monitorozni a más szálakra célzott egér- és billentyűzetüzeneteket, mint az alacsony szintű horgok. A nyers bemenettel kapcsolatos további információkért lásd: Nyers bemenet.