Seite 1 von 2

Tasten erkennen mit 4.0

Verfasst: 02.09.2006 22:08
von R4z0r1989
Weiß einer den befehl womit man erkennen kann welche taste gedrückt wird auf der tastatur!

bei 3.94 weis ich es aber wie gehts bei 4.0

Verfasst: 02.09.2006 22:09
von Kaeru Gaman
auch bei der 4.0 ist ne Hilfe dabei...

Verfasst: 02.09.2006 23:32
von R4z0r1989
ja aber da steht nix wie ich es ohne console und ohne Screen machen kann!!

Verfasst: 02.09.2006 23:37
von ts-soft
AddKeyboardShortcut( ?
#WM_KEYUP
GetAsyncKeyState_(

oder für ein bestimmtes Control?
Was geht denn in 3.94 was unter 4.0 nicht geht, bevor ich noch 20 Arten
aufzähle :freak:

Verfasst: 02.09.2006 23:52
von Kaeru Gaman
> ja aber da steht nix wie ich es ohne console und ohne Screen machen kann!!

weines wissens stand da bei 3.94 auch nix!!

Verfasst: 02.09.2006 23:55
von R4z0r1989
GetAsyncKeyState_() get irgendwie net

Verfasst: 03.09.2006 00:05
von ts-soft
Badboy99 hat geschrieben:GetAsyncKeyState_() get irgendwie net
Bei mir gehts, vielleicht ist Deine Tastatur kaputt

Was geht nicht???
Kann keiner konkrete Fragen mit Beispiel stellen?

Verfasst: 03.09.2006 13:44
von #NULL
@badboy99
GetAsyncKeyState_() ist WinAPI, das heißt du kannst es nicht mit der PB-Demo nutzten.

AddKeyboardShortcut() wird in der hilfe zur Keyboard-Library erwähnt - in 3.94 und 4

Verfasst: 03.09.2006 15:19
von DataMiner
... oder er versucht es mit EventwParam(), ist leider auch nicht dokumentiert.

BTW: um mich mal dreisterweise hier anzuhängen:
Wie stellt man es genau andersherum dar? Also Taste "1" auf der Tastatur wird gedrückt und jetzt soll das Buttongadget 1 "gedrückt" gezeigt werden???

Verfasst: 03.09.2006 19:06
von DataMiner
OK, hab's selbst herausgefunden
(so halbwegs <) )

Code: Alles auswählen

;PB4 Code

#WindowHeight = 100
#WindowWidth = 200
Dim btnhdle(3)
If OpenWindow(1, 0, 0, #WindowWidth, #WindowHeight, "Button-Test", #PB_Window_ScreenCentered | #PB_Window_SystemMenu)
  If CreateGadgetList(WindowID(1))
    For i = 1 To 3
      btnhdle(i)=ButtonGadget(i, 30, i * 30 - 20, #WindowWidth - 60, 20, Str(i))
    Next i
    
    SetActiveGadget(1)
    
    Repeat
      WindowEventID = WaitWindowEvent()
      EventwParam= EventwParam() & $FFFF
      
      Select WindowEventID
        Case #PB_Event_Gadget
          Debug "Button " + Str(EventGadget()) + " wurde angeklickt."
        Case #WM_KEYUP
          Debug EventwParam
          
          Select EventwParam
          
            Case 13
              Debug "Button " + Str(GetActiveGadget()) + " wurde mit <Enter> ausgewählt."
              
            Case 97 ; Taste 1 im Num-Block
              SetActiveGadget(1)
              SendMessage_(btnhdle(1), #BM_SETSTATE, #True, 0)
              
            Case 98 ; Taste 2 im Num-Block
              SetActiveGadget(2)
              SendMessage_(btnhdle(2), #BM_SETSTATE, #True, 0)
              
            Case 99 ; Taste 3 im Num-Block
              SetActiveGadget(3)
              SendMessage_(btnhdle(3), #BM_SETSTATE, #True, 0)
              
          EndSelect
          
      EndSelect

    Until WindowEventID = #PB_Event_CloseWindow
  EndIf
EndIf