Seite 1 von 1
[LINUX] Tasten abfragen ??
Verfasst: 01.05.2005 15:05
von Dristar
Hallo !!
mal wieder keine arnung

Ich möchte ganz gerne Windows Fenster
nur mit Tastatur steuern (unter Linux)
wie mache ich das am besten ?
mfg Dristar
Verfasst: 01.05.2005 17:23
von hardfalcon
PureBasic-Hilfe (=André) hat geschrieben:
AddKeyboardShortcut()
Syntax
AddKeyboardShortcut(#Window, Shortcut, EventID)
Beschreibung
Fügt einen Tastatur-Shortcut ("Tastenkürzel") zum angegebenen Fenster '#Window' hinzu. Ein Shortcut generiert ein Menü-Ereignis (wie ein Menü-Eintrag), da sie meistens im Zusammenhang mit Menüs benutzt werden. Der 'EventID' ist der Wert, welcher vom EventMenuID() Befehl zurückgegeben wird. Standardmäßig hat ein Fenster bereits die #PB_Shorcut_Tab und #PB_Shortcut_Tab|#PB_Shortcut_Shift Shortcuts, um die Tabulator und Shift-Tabulator Tasten(kombinationen) korrekt zu handhaben. Ein Shortcut kann mittels RemoveKeyboardShortcut() entfernt werden.
Der 'Shortcut' Parameter kann eine der folgenden Konstanten sein:
#PB_Shortcut_Back
#PB_Shortcut_Tab
#PB_Shortcut_Clear
#PB_Shortcut_Return
#PB_Shortcut_Menu
#PB_Shortcut_Pause
#PB_Shortcut_Print
#PB_Shortcut_Capital
#PB_Shortcut_Escape
#PB_Shortcut_Space
#PB_Shortcut_Prior
#PB_Shortcut_Next
#PB_Shortcut_End
#PB_Shortcut_Home
#PB_Shortcut_Left
#PB_Shortcut_Up
#PB_Shortcut_Right
#PB_Shortcut_Down
#PB_Shortcut_Select
#PB_Shortcut_Execute
#PB_Shortcut_Snapshot
#PB_Shortcut_Insert
#PB_Shortcut_Delete
#PB_Shortcut_Help
#PB_Shortcut_0
#PB_Shortcut_1
#PB_Shortcut_2
#PB_Shortcut_3
#PB_Shortcut_4
#PB_Shortcut_5
#PB_Shortcut_6
#PB_Shortcut_7
#PB_Shortcut_8
#PB_Shortcut_9
#PB_Shortcut_A
#PB_Shortcut_B
#PB_Shortcut_C
#PB_Shortcut_D
#PB_Shortcut_E
#PB_Shortcut_F
#PB_Shortcut_G
#PB_Shortcut_H
#PB_Shortcut_I
#PB_Shortcut_J
#PB_Shortcut_K
#PB_Shortcut_L
#PB_Shortcut_M
#PB_Shortcut_N
#PB_Shortcut_O
#PB_Shortcut_P
#PB_Shortcut_Q
#PB_Shortcut_R
#PB_Shortcut_S
#PB_Shortcut_T
#PB_Shortcut_U
#PB_Shortcut_V
#PB_Shortcut_W
#PB_Shortcut_X
#PB_Shortcut_Y
#PB_Shortcut_Z
#PB_Shortcut_LeftWindows
#PB_Shortcut_RightWindows
#PB_Shortcut_Apps
#PB_Shortcut_Pad0
#PB_Shortcut_Pad1
#PB_Shortcut_Pad2
#PB_Shortcut_Pad3
#PB_Shortcut_Pad4
#PB_Shortcut_Pad5
#PB_Shortcut_Pad6
#PB_Shortcut_Pad7
#PB_Shortcut_Pad8
#PB_Shortcut_Pad9
#PB_Shortcut_Multiply
#PB_Shortcut_Add
#PB_Shortcut_Separator
#PB_Shortcut_Subtract
#PB_Shortcut_Decimal
#PB_Shortcut_Divide
#PB_Shortcut_F1
#PB_Shortcut_F2
#PB_Shortcut_F3
#PB_Shortcut_F4
#PB_Shortcut_F5
#PB_Shortcut_F6
#PB_Shortcut_F7
#PB_Shortcut_F8
#PB_Shortcut_F9
#PB_Shortcut_F10
#PB_Shortcut_F11
#PB_Shortcut_F12
#PB_Shortcut_F13
#PB_Shortcut_F14
#PB_Shortcut_F15
#PB_Shortcut_F16
#PB_Shortcut_F17
#PB_Shortcut_F18
#PB_Shortcut_F19
#PB_Shortcut_F20
#PB_Shortcut_F21
#PB_Shortcut_F22
#PB_Shortcut_F23
#PB_Shortcut_F24
#PB_Shortcut_Numlock
#PB_Shortcut_Scroll
Die oben angegebene Taste kann mit jeder der folgenden Konstanten kombiniert werden:
#PB_Shortcut_Shift
#PB_Shortcut_Control
#PB_Shortcut_Alt
Beispiel:
AddKeyboardShortcut(0, #PB_Shortcut_Control | #PB_ShortCut_F, 15) ; Erstellt ein Tastaturkürzel 'CTRL+F' (STRG-F) für das Fenster 0,
; welches nach Tastendruck ein Menüereignis '15' liefert
Unterstützte OS
Windows, AmigaOS, Linux
Das sollte dir helfen, oder?
cya
Pascal
Verfasst: 01.05.2005 18:36
von Dristar
hm
das müste es sein ! aber es geht scheinbar nur bei Tasten kombination
mein Test code geht nicht :
Code: Alles auswählen
Procedure Open_Window_1()
OpenWindow(1,0,0,200,200,#PB_Window_SystemMenu|#PB_Window_ScreenCentered,"Fenster 2")
EndProcedure
Procedure Open_Window_0()
OpenWindow(0,0,0,200,200,#PB_Window_SystemMenu|#PB_Window_ScreenCentered,"KBD Shortcut")
EndProcedure
AddKeyboardShortcut(0,#PB_Shortcut_0,100)
AddKeyboardShortcut(0,#PB_Shortcut_1,101)
Open_Window_0()
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
end
Case #PB_Event_Menu
Select EventMenuID()
Case 101
MessageRequester("INFO","neues Fenster")
Open_Window_1()
Case 100
End
EndSelect
EndSelect
ForEver
mfg Dristar
Im window
Verfasst: 01.05.2005 19:00
von Green Snake
hallo
du musst den addshortcut im window aktualisieren
d.h noch dem openwindow befehl
so etwa:
Code: Alles auswählen
Procedure Open_Window_1()
OpenWindow(1,0,0,200,200,#PB_Window_SystemMenu|#PB_Window_ScreenCentered,"Fenster 2")
EndProcedure
Procedure Open_Window_0()
OpenWindow(0,0,0,200,200,#PB_Window_SystemMenu|#PB_Window_ScreenCentered,"KBD Shortcut")
EndProcedure
Open_Window_0()
AddKeyboardShortcut(0,#PB_Shortcut_0,100)
AddKeyboardShortcut(0,#PB_Shortcut_1,101)
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
End
Case #PB_Event_Menu
Select EventMenuID()
Case 101
MessageRequester("INFO","neues Fenster")
Open_Window_1()
Case 100
End
EndSelect
EndSelect
ForEver
Verfasst: 01.05.2005 19:10
von Dristar
@Green Snake

Danke !!
mfg Dristar
?
Verfasst: 01.05.2005 21:01
von Green Snake
hallo
was soll dieser

smilie?
hats geklappt oder nicht?
Verfasst: 02.05.2005 00:44
von Dristar
@Green Snake
ja es hat geklappt

....ich habe mir nur selber gedacht : " doffer fehler

"
So wolte ich es machen : Das erste Fenster soll das Menue anzeigen dann drückt mann so lange weiter bis mann den Programmteil erreicht den mann haben will
(so wie unter dos , bloss mit Windows Fenstern).Beim zweiten Fenster geht das mit den Tasten schon nicht mehr.Meine Frage muss ich jetzt erst mit Remove Shortcut die sachen wieder entfernen ?
oder vieleicht gibt es eine andere Lösung wie ich das machen kann ?
z.B: ein Windows Fenster in dem sich alles abspielt ! hm , nur wie kann sowas aussehen ?
mfg Dristar