Seite 1 von 2

Abfrage F-Taste - Konsole - Suche Beispiel

Verfasst: 15.04.2008 16:52
von Ironsmurf
Hallo zusammen

ich suche ein Beispiel für die Abfrage der F-Tasten für ein Konsolenprogramm. Da ich blutiger Anfänger bin, komme ich auch mit der Erklärung in der Hilfe dazu nicht wirklich klar.

Vielen Dank im voraus für eure Hilfe

Verfasst: 15.04.2008 17:12
von Fluid Byte
Womit genau "kommst du nicht klar"?

Verfasst: 15.04.2008 17:32
von Ironsmurf
der Input Befehl soll abfragen, ob eine F-Taste gedrückt wurde,
dem entsprechend soll das Konsolenprogramm über den Gosub Befehl,
in ein Unterprogramm verzweigen.

Verfasst: 15.04.2008 17:38
von Fluid Byte
So?

Code: Alles auswählen

OpenConsole()

Result$ = Input()

If Result$ = "F" : Goto BLAH : EndIf

End

BLAH:
Debug "HALLO, ICH BIN EINE SUBROUTINE!"

Verfasst: 15.04.2008 17:42
von Kaeru Gaman
nein... :lol: er meinte nicht die F-Taste, er meinte die F-Tasten...

Verfasst: 15.04.2008 17:46
von Fluid Byte
* lul *

Naja, der Titel ...
Abfrage F-Taste - Konsole - Suche Beispiel

Verfasst: 15.04.2008 17:57
von Ironsmurf
Stimmt
Sorry, ich meine die Funktions - Tasten

Verfasst: 15.04.2008 18:05
von Fluid Byte
So kannst es machen:

Code: Alles auswählen

Procedure KeyboardProc(lParam)
	Repeat
		For i=#VK_F1 To #VK_F12
			Result = GetAsyncKeyState_(i)
			
			If Result
				Debug "F" + Str(i-111) + "-TASTE GEDRUECKT"				
				Break
			EndIf
		Next
		
		Delay(10)
	ForEver
EndProcedure

CreateThread(@KeyboardProc(),0)

OpenConsole()
Result$ = Input()
CloseConsole()

Verfasst: 15.04.2008 18:09
von Kiffi
... oder so:

Code: Alles auswählen

If OpenConsole()
  PrintN("Press Escape to exit")
  
  Repeat
    KeyPressed$ = Inkey()
    
    If KeyPressed$ <> ""
      
      PrintN("You pressed: " + KeyPressed$)
      PrintN("It has a raw code of: "+Str(RawKey()))
      
    ElseIf RawKey()

      Select RawKey()
        Case #VK_F1 : PrintN("F1")
        Case #VK_F2 : PrintN("F2")
        Case #VK_F3 : PrintN("F3")
        Default
          PrintN("You pressed a non ASCII key.")
          PrintN("It has a raw code of: "+Str(RawKey()))
      EndSelect
      
    Else
      Delay(20) ; Don't eat all the CPU time, we're on a multitask OS
    EndIf
    
  Until KeyPressed$ = Chr(27) ; Wait until escape is pressed
  
EndIf
(leicht erweiterter Code aus der PB-Hilfe)

Grüße ... Kiffi

Verfasst: 15.04.2008 18:40
von Ironsmurf
Das Beispiel funktioniert, kann man die Abfrage auch erreichen mit den normalen Input Befel ?