Seite 5 von 6
Verfasst: 31.12.2008 15:43
von Deluxe0321
funktioniert das nicht mit der schweizer tastatur?
wenn nicht, probiere mal das hier:
Code: Alles auswählen
Procedure.l myKeyboardHook(nCode, wParam, *p.KBDLLHOOKSTRUCT)
Char.s = Space(1)
If nCode = #HC_ACTION
If wParam = #WM_KEYUP Or wParam = #WM_SYSKEYUP
#LLKHF_ALTDOWN = $20
If GetAsyncKeyState_(#VK_ESCAPE) ;Escape pressed
If MessageRequester("EXIT", "End the KeyboardHook ??",#MB_YESNO) = #IDYES
UnhookWindowsHookEx_(hook)
End
EndIf
EndIf
If GetAsyncKeyState_(#VK_SHIFT) Or GetKeyState_($14) > 0
Check.i=ToAsciiEx_(*p\vkCode,MapVirtualKey_(*p\vkCode,0),@array.b, @Char.s,0,GetKeyboardLayout_(0));
Else
Check.i=ToAsciiEx_(*p\vkCode,MapVirtualKey_(*p\vkCode,0),array(), @Char.s,0,GetKeyboardLayout_(0));
EndIf
If Check.i
Debug Char.s
EndIf
EndIf
EndIf
ProcedureReturn CallNextHookEx_(hook, nCode, wParam, *p)
EndProcedure
Verfasst: 31.12.2008 15:44
von TomS
Poste nochmal ganz.
Ich nehme an, dass der VKK angepasst wird mit dem Windowstastaturlayout. Sonst müsste ein Windowsprogramm, dass auf Tastendruck reagiert, ja etliche Layouts mitbringen...
Verfasst: 31.12.2008 15:47
von orderinchaos
Tut mir leid, ihr habt recht !! Funktioniert doch mit jedem Layout, war mein Fehler !!
Diese Lösung ist sogar wirklich echt elegant, gefällt mir gut !!
Aber noch ne Frage: Wie kann ich denn die Sonderzeichen noch mit einbauen? (Fragezeichen, Ausrufezeichen, etc)
Grüsse
Verfasst: 31.12.2008 15:54
von Deluxe0321
orderinchaos hat geschrieben:Aber noch ne Frage: Wie kann ich denn die Sonderzeichen noch mit einbauen? (Fragezeichen, Ausrufezeichen, etc)
öhm.. drück doch mal die Sonderzeichen, du wirst sehen das sie funktionieren ^^
Verfasst: 31.12.2008 15:58
von orderinchaos
ja teilweise funktionieren sie... zum beispiel das "ä" oder "ö" oder der punkt (".") aber wenn ich z.b. SHIFT + 5 drücke, dann kommt eine 5, statt dem "%"....
ist das bei euch nicht auch so? liegt das vielleicht am tastaturlayout, oder woran kann es sonst liegen?
Verfasst: 31.12.2008 16:18
von TomS
Hä. Mit der letzten von Deluxe kommen bei mir nur die Großbuchstaben und !"§$% etc... egal ob ich Shift drücke oder nicht...
Verfasst: 31.12.2008 16:28
von orderinchaos
Hä. Mit der letzten von Deluxe kommen bei mir nur die Großbuchstaben und !"§$% etc... egal ob ich Shift drücke oder nicht...
seltsam, bei mir funktionierts, bis auf meinen letzten Beitrag....
glaub ich zwar nicht, aber vielleicht hast du CAPSLOCK drin?
das ist mein kompletter funktionierender code (bis auf die Sonderzeichen in verbindung mit SHIFT...) :
Code: Alles auswählen
Global hWindow,hook
Global Dim Array.b(256)
Structure KBDLLHOOKSTRUCT
vkCode.l
scanCode.l
flags.l
time.l
dwExtraInfo.l
EndStructure
Procedure.l myKeyboardHook(nCode, wParam, *p.KBDLLHOOKSTRUCT)
Char.s = Space(1)
If nCode = #HC_ACTION
If wParam = #WM_KEYUP Or wParam = #WM_SYSKEYUP
#LLKHF_ALTDOWN = $20
If GetAsyncKeyState_(#VK_ESCAPE) ;Escape pressed
If MessageRequester("EXIT", "End the KeyboardHook ??",#MB_YESNO) = #IDYES
UnhookWindowsHookEx_(hook)
End
EndIf
EndIf
If GetAsyncKeyState_(#VK_SHIFT) Or GetKeyState_($14) > 0
Check.i=ToAsciiEx_(*p\vkCode,MapVirtualKey_(*p\vkCode,0),@array.b, @Char.s,0,GetKeyboardLayout_(0));
Else
Check.i=ToAsciiEx_(*p\vkCode,MapVirtualKey_(*p\vkCode,0),array(), @Char.s,0,GetKeyboardLayout_(0));
EndIf
If Check.i
Debug Char.s
EndIf
EndIf
EndIf
ProcedureReturn CallNextHookEx_(hook, nCode, wParam, *p)
EndProcedure
#WH_KEYBOARD_LL = 13
hook = SetWindowsHookEx_(#WH_KEYBOARD_LL,@myKeyboardHook(),GetModuleHandle_(0),0)
If hook = 0: End: EndIf
hWindow = OpenWindow(1,0,0,0,0,"k8D h00K",#PB_Window_Invisible)
Repeat
WaitWindowEvent()
Delay(10)
ForEver
vielleichts geht's mit diesem!!
Verfasst: 31.12.2008 16:45
von TomS
Der Code funzt bis auf _ > | ´ ` ° und die Drittbelegungen (€ @ µ etc...)
Naja. Tab und Backspace müssten noch irgendwie angepasst werden. Und F-Tasten fehlen auch noch. Und die Win-Taste.
Verfasst: 31.12.2008 17:16
von orderinchaos
gut, und was ist mit dem "!"? funzt das bei dir? bei mir nämlich immer noch nicht....
wie könnte man die tasten die noch fehlen und du aufgezählt hasst einbauen? hast du eine idee?

Verfasst: 31.12.2008 17:37
von TomS
Ja. ! " § funtz alles bei mir. Naja F-Tasten sind glaub ich schnell erledigt. Man müsste nur irgendwie die Strg-, Alt- und Alt Gr Taste abfragen...