Seite 1 von 3
Tastatur abfragen (ohne DirectX)
Verfasst: 13.08.2005 18:20
von ZeHa
Hallo!
Wollte mal fragen, mit welchen Events ich die Tastatur abfragen kann, wenn ich gerade kein DirectX benutze, also z.B. eine ganz normale Fenster-Anwendung schreib.
Oder muß ich da ebenfalls InitKeyboard() etc benutzen?
Verfasst: 13.08.2005 18:21
von MVXA
GetAsyncKeyState_()
Oder du verarbeiteste die Windows Messages und filterst die
Events #WM_KEYDOWN und #WM_KEYUP raus.
Verfasst: 13.08.2005 18:22
von DarkDragon
Mist, du warst schneller.
Verfasst: 13.08.2005 18:23
von ZeHa
Sprich, es geht nur direkt über die API, es gibt kein #PB_Event_Keyboard oder sowas?
Verfasst: 13.08.2005 18:25
von DarkDragon
ZeHa hat geschrieben:Sprich, es geht nur direkt über die API, es gibt kein #PB_Event_Keyboard oder sowas?
Entweder über die API oder Keyboard shortcuts(Siehe Hilfe-Window->AddKeyboardShortcut(#Window, Shortcut, EventID))
Verfasst: 13.08.2005 18:34
von Christi
Code: Alles auswählen
;pb 3.93
OpenWindow(0, 0, 0, 200, 200, #PB_Window_ScreenCentered | #PB_Window_SystemMenu, "Test")
Repeat
ereignis.l = WaitWindowEvent()
If ereignis.l = #wm_keydown
If EventlParam() & %01000000000000000000000000000000
Debug Str(EventwParam()) + " ..."
Else
Debug Str(EventwParam()) + " *drück*"
EndIf
ElseIf ereignis.l = #wm_keyup
Debug Str(EventwParam()) + " *loslass*"
EndIf
Until ereignis.l = #PB_Event_CloseWindow
Verfasst: 13.08.2005 18:46
von ZeHa
Hey das ist cool! Jetzt muß ich nur noch wissen, wie ich rausfinden kann, WELCHE Taste gedrückt wurde

Verfasst: 13.08.2005 18:49
von DarkDragon
ZeHa hat geschrieben:Hey das ist cool! Jetzt muß ich nur noch wissen, wie ich rausfinden kann, WELCHE Taste gedrückt wurde

Dazu gibts die VK_ Konstanten(Siehe API-Viewer)
Beispiel:
Code: Alles auswählen
;pb 3.93
OpenWindow(0, 0, 0, 200, 200, #PB_Window_ScreenCentered | #PB_Window_SystemMenu, "Test")
Repeat
ereignis.l = WaitWindowEvent()
If ereignis.l = #wm_keydown
If EventwParam() = #VK_A
Debug Str(EventwParam()) + "A wurde gedrückt"
EndIf
EndIf
Until ereignis.l = #PB_Event_CloseWindow
Verfasst: 13.08.2005 19:00
von vonTurnundTaxis
Vielleicht so:
Code: Alles auswählen
Structure keys
Wert.l
Name.s
EndStructure
NewList Keys.keys()
AddElement(Keys())
Keys()\Wert = #VK_BACK
Keys()\Name = "VK_BACK"
AddElement(Keys())
Keys()\Wert = #VK_TAB
Keys()\Name = "VK_TAB"
AddElement(Keys())
Keys()\Wert = #VK_CLEAR
Keys()\Name = "VK_CLEAR"
AddElement(Keys())
Keys()\Wert = #VK_RETURN
Keys()\Name = "VK_RETURN"
AddElement(Keys())
Keys()\Wert = #VK_SHIFT
Keys()\Name = "VK_SHIFT"
AddElement(Keys())
Keys()\Wert = #VK_CONTROL
Keys()\Name = "VK_CONTROL"
AddElement(Keys())
Keys()\Wert = #VK_MENU
Keys()\Name = "VK_MENU"
AddElement(Keys())
Keys()\Wert = #VK_PAUSE
Keys()\Name = "VK_PAUSE"
AddElement(Keys())
Keys()\Wert = #VK_CAPITAL
Keys()\Name = "VK_CAPITAL"
AddElement(Keys())
Keys()\Wert = #VK_ESCAPE
Keys()\Name = "VK_ESCAPE"
AddElement(Keys())
Keys()\Wert = #VK_SPACE
Keys()\Name = "VK_SPACE"
AddElement(Keys())
Keys()\Wert = #VK_PRIOR
Keys()\Name = "VK_PRIOR"
AddElement(Keys())
Keys()\Wert = #VK_NEXT
Keys()\Name = "VK_NEXT"
AddElement(Keys())
Keys()\Wert = #VK_END
Keys()\Name = "VK_END"
AddElement(Keys())
Keys()\Wert = #VK_HOME
Keys()\Name = "VK_HOME"
AddElement(Keys())
Keys()\Wert = #VK_LEFT
Keys()\Name = "VK_LEFT"
AddElement(Keys())
Keys()\Wert = #VK_UP
Keys()\Name = "VK_UP"
AddElement(Keys())
Keys()\Wert = #VK_RIGHT
Keys()\Name = "VK_RIGHT"
AddElement(Keys())
Keys()\Wert = #VK_DOWN
Keys()\Name = "VK_DOWN"
AddElement(Keys())
Keys()\Wert = #VK_SELECT
Keys()\Name = "VK_SELECT"
AddElement(Keys())
Keys()\Wert = #VK_PRINT
Keys()\Name = "VK_PRINT"
AddElement(Keys())
Keys()\Wert = #VK_EXECUTE
Keys()\Name = "VK_EXECUTE"
AddElement(Keys())
Keys()\Wert = #VK_SNAPSHOT
Keys()\Name = "VK_SNAPSHOT"
AddElement(Keys())
Keys()\Wert = #VK_INSERT
Keys()\Name = "VK_INSERT"
AddElement(Keys())
Keys()\Wert = #VK_DELETE
Keys()\Name = "VK_DELETE"
AddElement(Keys())
Keys()\Wert = #VK_HELP
Keys()\Name = "VK_HELP"
AddElement(Keys())
Keys()\Wert = #VK_0
Keys()\Name = "VK_0"
AddElement(Keys())
Keys()\Wert = #VK_1
Keys()\Name = "VK_1"
AddElement(Keys())
Keys()\Wert = #VK_2
Keys()\Name = "VK_2"
AddElement(Keys())
Keys()\Wert = #VK_3
Keys()\Name = "VK_3"
AddElement(Keys())
Keys()\Wert = #VK_4
Keys()\Name = "VK_4"
AddElement(Keys())
Keys()\Wert = #VK_5
Keys()\Name = "VK_5"
AddElement(Keys())
Keys()\Wert = #VK_6
Keys()\Name = "VK_6"
AddElement(Keys())
Keys()\Wert = #VK_7
Keys()\Name = "VK_7"
AddElement(Keys())
Keys()\Wert = #VK_8
Keys()\Name = "VK_8"
AddElement(Keys())
Keys()\Wert = #VK_9
Keys()\Name = "VK_9"
AddElement(Keys())
Keys()\Wert = #VK_A
Keys()\Name = "VK_A"
AddElement(Keys())
Keys()\Wert = #VK_B
Keys()\Name = "VK_B"
AddElement(Keys())
Keys()\Wert = #VK_C
Keys()\Name = "VK_C"
AddElement(Keys())
Keys()\Wert = #VK_D
Keys()\Name = "VK_D"
AddElement(Keys())
Keys()\Wert = #VK_E
Keys()\Name = "VK_E"
AddElement(Keys())
Keys()\Wert = #VK_F
Keys()\Name = "VK_F"
AddElement(Keys())
Keys()\Wert = #VK_G
Keys()\Name = "VK_G"
AddElement(Keys())
Keys()\Wert = #VK_H
Keys()\Name = "VK_H"
AddElement(Keys())
Keys()\Wert = #VK_I
Keys()\Name = "VK_I"
AddElement(Keys())
Keys()\Wert = #VK_J
Keys()\Name = "VK_J"
AddElement(Keys())
Keys()\Wert = #VK_K
Keys()\Name = "VK_K"
AddElement(Keys())
Keys()\Wert = #VK_L
Keys()\Name = "VK_L"
AddElement(Keys())
Keys()\Wert = #VK_M
Keys()\Name = "VK_M"
AddElement(Keys())
Keys()\Wert = #VK_N
Keys()\Name = "VK_N"
AddElement(Keys())
Keys()\Wert = #VK_O
Keys()\Name = "VK_O"
AddElement(Keys())
Keys()\Wert = #VK_P
Keys()\Name = "VK_P"
AddElement(Keys())
Keys()\Wert = #VK_Q
Keys()\Name = "VK_Q"
AddElement(Keys())
Keys()\Wert = #VK_R
Keys()\Name = "VK_R"
AddElement(Keys())
Keys()\Wert = #VK_S
Keys()\Name = "VK_S"
AddElement(Keys())
Keys()\Wert = #VK_T
Keys()\Name = "VK_T"
AddElement(Keys())
Keys()\Wert = #VK_U
Keys()\Name = "VK_U"
AddElement(Keys())
Keys()\Wert = #VK_V
Keys()\Name = "VK_V"
AddElement(Keys())
Keys()\Wert = #VK_W
Keys()\Name = "VK_W"
AddElement(Keys())
Keys()\Wert = #VK_X
Keys()\Name = "VK_X"
AddElement(Keys())
Keys()\Wert = #VK_Y
Keys()\Name = "VK_Y"
AddElement(Keys())
Keys()\Wert = #VK_Z
Keys()\Name = "VK_Z"
AddElement(Keys())
Keys()\Wert = #VK_NUMPAD0
Keys()\Name = "VK_NUMPAD0"
AddElement(Keys())
Keys()\Wert = #VK_NUMPAD1
Keys()\Name = "VK_NUMPAD1"
AddElement(Keys())
Keys()\Wert = #VK_NUMPAD2
Keys()\Name = "VK_NUMPAD2"
AddElement(Keys())
Keys()\Wert = #VK_NUMPAD3
Keys()\Name = "VK_NUMPAD3"
AddElement(Keys())
Keys()\Wert = #VK_NUMPAD4
Keys()\Name = "VK_NUMPAD4"
AddElement(Keys())
Keys()\Wert = #VK_NUMPAD5
Keys()\Name = "VK_NUMPAD5"
AddElement(Keys())
Keys()\Wert = #VK_NUMPAD6
Keys()\Name = "VK_NUMPAD6"
AddElement(Keys())
Keys()\Wert = #VK_NUMPAD7
Keys()\Name = "VK_NUMPAD7"
AddElement(Keys())
Keys()\Wert = #VK_NUMPAD8
Keys()\Name = "VK_NUMPAD8"
AddElement(Keys())
Keys()\Wert = #VK_NUMPAD9
Keys()\Name = "VK_NUMPAD9"
AddElement(Keys())
Keys()\Wert = #VK_MULTIPLY
Keys()\Name = "VK_MULTIPLY"
AddElement(Keys())
Keys()\Wert = #VK_ADD
Keys()\Name = "VK_ADD"
AddElement(Keys())
Keys()\Wert = #VK_DECIMAL
Keys()\Name = "VK_DECIMAL"
AddElement(Keys())
Keys()\Wert = #VK_DIVIDE
Keys()\Name = "VK_DIVIDE"
AddElement(Keys())
Keys()\Wert = #VK_F1
Keys()\Name = "VK_F1"
AddElement(Keys())
Keys()\Wert = #VK_F2
Keys()\Name = "VK_F2"
AddElement(Keys())
Keys()\Wert = #VK_F3
Keys()\Name = "VK_F3"
AddElement(Keys())
Keys()\Wert = #VK_F4
Keys()\Name = "VK_F4"
AddElement(Keys())
Keys()\Wert = #VK_F5
Keys()\Name = "VK_F5"
AddElement(Keys())
Keys()\Wert = #VK_F6
Keys()\Name = "VK_F6"
AddElement(Keys())
Keys()\Wert = #VK_F7
Keys()\Name = "VK_F7"
AddElement(Keys())
Keys()\Wert = #VK_F8
Keys()\Name = "VK_F8"
AddElement(Keys())
Keys()\Wert = #VK_F9
Keys()\Name = "VK_F9"
AddElement(Keys())
Keys()\Wert = #VK_F10
Keys()\Name = "VK_F10"
AddElement(Keys())
Keys()\Wert = #VK_F11
Keys()\Name = "VK_F11"
AddElement(Keys())
Keys()\Wert = #VK_F12
Keys()\Name = "VK_F12"
AddElement(Keys())
Keys()\Wert = #VK_F13
Keys()\Name = "VK_F13"
AddElement(Keys())
Keys()\Wert = #VK_F14
Keys()\Name = "VK_F14"
AddElement(Keys())
Keys()\Wert = #VK_F15
Keys()\Name = "VK_F15"
AddElement(Keys())
Keys()\Wert = #VK_F16
Keys()\Name = "VK_F16"
AddElement(Keys())
Keys()\Wert = #VK_F17
Keys()\Name = "VK_F17"
AddElement(Keys())
Keys()\Wert = #VK_F18
Keys()\Name = "VK_F18"
AddElement(Keys())
Keys()\Wert = #VK_F19
Keys()\Name = "VK_F19"
AddElement(Keys())
Keys()\Wert = #VK_F20
Keys()\Name = "VK_F20"
AddElement(Keys())
Keys()\Wert = #VK_F21
Keys()\Name = "VK_F21"
AddElement(Keys())
Keys()\Wert = #VK_F22
Keys()\Name = "VK_F22"
AddElement(Keys())
Keys()\Wert = #VK_F23
Keys()\Name = "VK_F23"
AddElement(Keys())
Keys()\Wert = #VK_F24
Keys()\Name = "VK_F24"
AddElement(Keys())
Keys()\Wert = #VK_NUMLOCK
Keys()\Name = "VK_NUMLOCK"
OpenWindow(0, 0, 0, 200, 200, #PB_Window_ScreenCentered | #PB_Window_SystemMenu, "Test")
Repeat
ereignis.l = WaitWindowEvent()
If ereignis.l = #WM_KEYDOWN
If EventlParam() & %01000000000000000000000000000000
Debug Str(EventwParam()) + " ..."
Else
ForEach Keys()
If EventwParam() = Keys()\Wert
Debug Keys()\Name + " *drück*"
EndIf
Next
EndIf
ElseIf ereignis.l = #WM_KEYUP
ForEach Keys()
If EventwParam() = Keys()\Wert
Debug Keys()\Name + " *loslass*"
EndIf
Next
EndIf
Until ereignis.l = #PB_Event_CloseWindow
Verfasst: 13.08.2005 19:05
von ZeHa
Yeah, danke euch allen für eure (recht flotten) Antworten
Jetzt kann ich heut Nacht gaanz viel prog... »autsch« - meine Freundin sagt, ich wollte schreiben: "Jetzt kann ich heut Nacht ganz beruhigt schlafen"
