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? :freak:

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...