Globaler KeyboardHook zur kompletten Tastaturabfrage
- orderinchaos
- Beiträge: 49
- Registriert: 20.06.2008 16:19
was hat denn CTRL + ALT GR etc.... mit den F-Tasten zu tun? versteh ich nicht ganz....
aber was mich noch mehr stört: Wieso geht bei dir das "!" und bei mir nicht? an was kann denn das liegen? Vielleicht doch am Tastatur-Layout.... auf welcher Taste ist bei dir denn das "!"? Bei mir obe rechts gleich neben der ENTER taste....
thx
aber was mich noch mehr stört: Wieso geht bei dir das "!" und bei mir nicht? an was kann denn das liegen? Vielleicht doch am Tastatur-Layout.... auf welcher Taste ist bei dir denn das "!"? Bei mir obe rechts gleich neben der ENTER taste....
thx
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
- orderinchaos
- Beiträge: 49
- Registriert: 20.06.2008 16:19
- Deluxe0321
- Beiträge: 336
- Registriert: 19.05.2006 00:31
- Kontaktdaten:
Code: Alles auswählen
Procedure.l myKeyboardHook(nCode, wParam, *p.KBDLLHOOKSTRUCT)
Char.s = Space(1)
If nCode = #HC_ACTION
Select wParam
Case #WM_KEYUP
Debug "#WM_KEYUP"
Case #WM_SYSKEYUP
Debug "#WM_SYSKEYUP"
Case #WM_KEYDOWN
Debug "#WM_KEYDOWN "
Case #WM_SYSKEYDOWN
Debug "#WM_SYSKEYDOWN"
EndSelect
If wParam = #WM_KEYUP Or wParam = #WM_SYSKEYUP Or wParam = #WM_KEYDOWN Or wParam = #WM_SYSKEYDOWN
If GetAsyncKeyState_(#VK_ESCAPE) ;Escape pressed
UnhookWindowsHookEx_(hook)
End
EndIf
GetKeyboardState_(@Array())
If GetAsyncKeyState_(#VK_SHIFT) Or GetKeyState_($14) > 0
Check.i=ToAsciiEx_(*p\vkCode,*p\scanCode.l,@dummy, @Char.s,0,GetKeyboardLayout_(0));
Else
Check.i=ToAsciiEx_(*p\vkCode,*p\scanCode.l,@array(), @Char.s,0,GetKeyboardLayout_(0));
EndIf
If Check.i
Debug Char.s
EndIf
EndIf
EndIf
ProcedureReturn CallNextHookEx_(hook, nCode, wParam, *p)
EndProcedure
funzt irgendwie noch nicht ganz (selbes problem wie vorhint tastendruck wird doppelt ausgegeben), aber für mehr habe ich jetzt keine zeit mehr. Muss noch Silvester vorbereiten.
Viel Spaß & guten rutsch
Marvin
Du prüfst bei wParam auf KEYUP und KEYDOWN! Wenn du eine Taste drückst, wird erst KEYDOWN gemeldet und nach dem Loslassen nochmal KEYUP. Du hookst pro Tastendruck ZWEI Events, also bekommst du auch zweimal ein 'a' beim Drücken der A-Taste.
Euch allen auch einen guten Rutsch!
Code: Alles auswählen
If wParam = #WM_KEYDOWN Or wParam = #WM_SYSKEYDOWN
- orderinchaos
- Beiträge: 49
- Registriert: 20.06.2008 16:19
- Deluxe0321
- Beiträge: 336
- Registriert: 19.05.2006 00:31
- Kontaktdaten: