| |
|
|
|
Source wurde al 15.07.2007 de el MMJ-Quellcodesammlung (Dietmar Horn) en el Babyklappe en XProfan.Com abgelegt:
Tastatureingaben abfangen (Umlaute en normale Buchstaben umsetzen)
Im folgenden Ejemplo se el Umsetzen de Umlauten en normalen Buchstaben vorgenommen.
Lo se una Nachrichtenfilterfunktion para el Tastatur-Noticias mittels SetWindowsHookEx installiert.
Sie leitet el eingehenden Tastatur-Noticias en el CallBack-Rutina KbdHookProc en y wertet ellos de,
bevor ellos abgefangen (con Volver <> 0) oder weitergeleitet (con Volver = 0) se.
Lo voluntad el virtuellen Key-Codes para el Alemán Umlaute abgefangen y con Keybd_Event en una
entsprechendes Äquivalent umgesetzt.
Lo voluntad zwei MultiEdit-Controls en el Ventana geöffnet, en a zeigen, dass esta Rutina unabhängig
de el Controls funktioniert.
Am Ende es lo notwendig, el verkettete Rutina mittels UnHookWindwsEx al Ende otra vez a entfernen.
-Begin-----------------------------------------------------------------
$H Windows.ph
-DeclareVariables----------------------------------------------------
Declarar hKbdHook&, Ende&
-HookProc------------------------------------------------------------
Proc KbdHookProc
Parámetros nCode&, wParam&, lParam&
Declarar RetCode&
If wParam& = 222 Ä
If 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 Ö
If 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 Ü
If 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 ß
If 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
Más
~CallNextHookEx(hKbdHook&, nCode&, wParam&, lParam&)
RetCode& = 0
EndIf
Volver RetCode&
ENDPROC
---------------------------------------------------------------------
Ventana de Estilo 27
Cls
hKbdHook& = ~SetWindowsHookEx(~WH_KEYBOARD,
@ProcAddr(KbdHookProc, 3), 0,
~GetWindowThreadProcessID(%hWnd, 0))
@Crear(MultiEdit, %hWnd, , 10, 10, 600, 210)
@Crear(MultiEdit, %hWnd, , 10, 235, 600, 210)
Claro Ende&
Sinestar encargado Ende&
WaitInput
If %Key = 2
Ende& = 1
EndIf
EndWhile
~UnHookWindowsHookEx(hKbdHook&)
-End-------------------------------------------------------------------
End
Referencia: Lo es con XProfan no posible, systemweit Tastatur-Noticias abzufangen.
Windows esperado una entsprechende Rutina en uno DLL-Expediente.
|
|
|
| |
|
|