Tastatur abfragen (ohne DirectX)
Tastatur abfragen (ohne DirectX)
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?
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?
-
- Beiträge: 6291
- Registriert: 29.08.2004 08:37
- Computerausstattung: Hoffentlich bald keine mehr
- Kontaktdaten:
-
- Beiträge: 6291
- Registriert: 29.08.2004 08:37
- Computerausstattung: Hoffentlich bald keine mehr
- Kontaktdaten:
Entweder über die API oder Keyboard shortcuts(Siehe Hilfe-Window->AddKeyboardShortcut(#Window, Shortcut, EventID))ZeHa hat geschrieben:Sprich, es geht nur direkt über die API, es gibt kein #PB_Event_Keyboard oder sowas?
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
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
-
- Beiträge: 6291
- Registriert: 29.08.2004 08:37
- Computerausstattung: Hoffentlich bald keine mehr
- Kontaktdaten:
Dazu gibts die VK_ Konstanten(Siehe API-Viewer)ZeHa hat geschrieben:Hey das ist cool! Jetzt muß ich nur noch wissen, wie ich rausfinden kann, WELCHE Taste gedrückt wurde
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
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
- vonTurnundTaxis
- Beiträge: 2130
- Registriert: 06.10.2004 20:38
- Wohnort: Bayreuth
- Kontaktdaten:
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