| |
|
|
|
Source wurde am 15.07.2007 aus qui MMJ-Quellcodesammlung (Dietmar Horn) dans qui Babyklappe sur XProfan.Com abgelegt:
Tastatureingaben intercepter (Umlaute dans normale Buchstaben umsetzen)
Im folgenden Beispiel wird cela Umsetzen de Umlauten dans normalen Buchstaben vorgenommen.
Es wird une Nachrichtenfilterfunktion pour qui clavier-Nouvelles mittels SetWindowsHookEx installiert.
vous leitet qui eingehenden clavier-Nouvelles sur qui CallBack-Routine KbdHookProc um et wertet vous aus,
bevor vous abgefangen (avec Retour <> 0) ou bien weitergeleitet (avec Retour = 0) volonté.
Es volonté qui virtuellen Key-Codes pour qui deutschen Umlaute abgefangen et avec Keybd_Event dans un
entsprechendes Äquivalent mise en œuvre.
Es volonté deux MultiEdit-Controls sur dem la fenêtre ouvert, um trop montrer, dass cet Routine indépendant
de den Controls funktioniert.
Am Ende ist es notwendig, qui verkettete Routine mittels UnHookWindwsEx am Ende wieder trop entfernen.
-Begin-----------------------------------------------------------------
$H Windows.ph
-DeclareVariables----------------------------------------------------
Déclarer hKbdHook&, Ende&
-HookProc------------------------------------------------------------
Proc KbdHookProc
Paramètres nCode&, wParam&, lParam&
Déclarer RetCode&
Si wParam& = 222 Ä
Si lParam& < 0
~keybd_event(65, 0, 0, 0)
~keybd_event(65, 0, ~KEYEVENTF_KEYUP, 0)
~keybd_event(69, 0, 0, 0)
~keybd_event(69, 0, ~KEYEVENTF_KEYUP, 0)
EndIf
RetCode& = 1
ElseIf wParam& = 192 Ö
Si lParam& < 0
~keybd_event(79, 0, 0, 0)
~keybd_event(79, 0, ~KEYEVENTF_KEYUP, 0)
~keybd_event(69, 0, 0, 0)
~keybd_event(69, 0, ~KEYEVENTF_KEYUP, 0)
EndIf
RetCode& = 1
ElseIf wParam& = 186 Ü
Si lParam& < 0
~keybd_event(85, 0, 0, 0)
~keybd_event(85, 0, ~KEYEVENTF_KEYUP, 0)
~keybd_event(69, 0, 0, 0)
~keybd_event(69, 0, ~KEYEVENTF_KEYUP, 0)
EndIf
RetCode& = 1
ElseIf wParam& = 219 ß
Si lParam& < 0
~keybd_event(83, 0, 0, 0)
~keybd_event(83, 0, ~KEYEVENTF_KEYUP, 0)
~keybd_event(83, 0, 0, 0)
~keybd_event(83, 0, ~KEYEVENTF_KEYUP, 0)
EndIf
RetCode& = 1
D'autre
~CallNextHookEx(hKbdHook&, nCode&, wParam&, lParam&)
RetCode& = 0
EndIf
Retour RetCode&
ENDPROC
---------------------------------------------------------------------
Fenêtre Style 27
Cls
hKbdHook& = ~SetWindowsHookEx(~WH_KEYBOARD,
@ProcAddr(KbdHookProc, 3), 0,
~GetWindowThreadProcessID(%hWnd, 0))
@Créer(MultiEdit, %hWnd, , 10, 10, 600, 210)
@Créer(MultiEdit, %hWnd, , 10, 235, 600, 210)
Claire Ende&
WhileNot Ende&
WaitInput
Si %Key = 2
Ende& = 1
EndIf
Endwhile
~UnHookWindowsHookEx(hKbdHook&)
-Fin-------------------------------------------------------------------
Fin
Hinweis: Es ist avec XProfan pas possible, systemweit clavier-Nouvelles abzufangen.
Windows erwartet une entsprechende Routine dans einer DLL-Dossier.
|
|
|
| |
|
|