Programozás Delphi - tapasztalatcsere

Tudja meg a jelenlegi állapot bármely gomb egyszerű API - hívja GetKeyState funkciót. Hívás formátum:
funkció GetKeyState (nVirtKey: Integer): rövid;
nVirtKey - a virtuális kulcskóddal érdekes számunkra.
Visszatérés - Ha a magasabb rendű kicsit, a gomb megnyomása után. A legalacsonyabb bit be van állítva, amikor elengedi a gombot. Kiváltó kulcsok mladny bit jelzi, hogy a ravaszt gombot (vagyis hogy a bura megvilágított) tartalmazza

A különösen GetKeyState van, hogy a kulcsfontosságú állami ezen függvény által visszaadott megváltozik olvasásakor áramban billentyűzet üzeneteket üzenete sorban. GetAsyncKeyState funkció nem függ az üzenetek áramlását, ami bizonyos esetekben nagyon kényelmes.

Parancsikonok - bejelentés és feldolgozás

Hot Key - billentyűkombinációk, amelyek a rendszerben regisztrált és lenyomva WM_HOTKEY rendszer küld egy üzenetet az ablak, Handle, amelyet kifejtette regisztrációs gyorsbillentyűket. Nem számít, hogy a kedvezményezett ablak- a fókuszt, és nyilván, hogy ez a képernyőn. Ez különösen akkor hasznos, ha írásban programok, amelyek megnyomásával aktiválható bizonyos billentyűkombinációk (inaktív alkalmazások, mint a védőoltást, nem tartalmaznak semmilyen látható ablakok).
Regisztráció történik hívja az API RegisterHotKey
funkció RegisterHotKey (hwnd: HWND; ID: integer; fsModifiers, vk: UINT): BOOL;
HWND - kilincset az ablak üzeneteket kap, ha megnyomja a gyorsbillentyűt
id - az azonosító (a szám át WM_HOTKEY üzenet azonosítója lehetővé teszi az alkalmazások számára a munka több gyorsbillentyűk, megkülönböztetve őket id.). Nem lehet meghatározni két hivatkozások azonos id
fsModifiers - módosítók. Határozza meg, melyik kulcsot kell nyomni együtt az említett vk. Az érvényes értékek: MOD_ALT - ALT, MOD_CONTROL - CTRL, MOD_SHIFT - SHIFT
vk - a virtuális kulcs kód
Ha a billentyű nem regisztrálja, akkor a függvény TRUE.

Befejezése után a kívánt alkalmazást törölni a hotkey segítségével UnregisterHotKey hívást. Ha vezetünk vyzve kezelni ablakok és gyorsgomb id.
például:

Lehallgatása karakternél alkalmazáson belül.

Lehallgatás gombnyomás Windows (hook)

Vannak olyan alkalmazások, amelyek szükség, hogy elfogják az összes karakternél a Windows, akkor is, ha abban a pillanatban egy másik alkalmazás aktív. Ez lehet például egy program váltás billentyűzetkiosztás szótár vagy memória rezidens program, amely elvégzi egyéb intézkedések megnyomjuk a „forró” billentyűkombinációt.
Lehallgatása események a Windows (beleértve az eseményeket a billentyűzet) végezzük hívja SetWindowsHook () függvényt. Ez a funkció regisztrálja a Windows csapda (hook) bizonyos típusú események / üzeneteket. Csapdák - egyéni eljárás, amely kezeli az adott esemény. A lényeg itt az, hogy ez az eljárás mindig jelen kell lennie a Windows memória. Ezért egy csapda elhelyezett egy DLL, a DLL betöltése a programot. Míg legalább egy program használ egy DLL, hogy nem lehet rakodni a memóriából. Itt egy példa a DLL és a program, hogy használja. A példában csapda rögzíti billentyűk a billentyűzeten, és azt írja, hogy egy szöveges fájlt
Ez a példa nagyon egyszerű, és nem veszi figyelembe azt a tényt, hogy az a munka befejezésekor el kell távolítani a csapdába. Munkahelyen hangjelzést ad minden egyes alkalommal, amikor egy gombnyomás, és visszaállítja a beállításokat egy szöveges fájl hívást. Egy példa a munkás, szoktam, hogy meghatározza kulcskódoknak írásakor a vezető multimédiás billentyűzet Genius (natív egyébként is írt a Delphi, de a görbe szégyen - ez akasztani magát, de a számítógép lefagy).

Hogyan lehet elkapni a karakternél a folyamatok a rendszerben?

Kapcsolódó cikkek