Seite 1 von 1

Tastendruck einlesen

Verfasst: 08.08.2007 07:26
von Martin66119
Einen guten Morgen!

Wie kann man einen Tastendruck einlesen. Mit folgendem Code geht es nicht, da für Keyboard-Befehle zuerst OpenScrenn oder OpenWindowedScreen aufgerufen werden muss.

Nun die Frage. Gibt es einen anderen Befehl, mit dem man einen Tastendruck einlesen kann.
Danke für die Hilfe
Martin

Code: Alles auswählen

OpenWindow(0,0,0,400,300,"")
  If InitKeyboard() 
    Repeat    
      ExamineKeyboard()
      FullText$ + KeyboardInkey()     
      If KeyboardReleased(#PB_Key_Back)  
        FullText$ = Left(FullText$, Len(FullText$)-1)
      EndIf
     MessageRequester("Eingabe", FullText$,0)
    Until KeyboardPushed(#PB_Key_Escape)
  EndIf
code-tags hinzugefügt. nächstes mal bitte selber dran denken - Kaeru fecit

Verfasst: 08.08.2007 08:19
von ts-soft
Die Suchfunktion ist keine Zierde. Hätte Dir alles beantwortet :freak:

http://www.purebasic.fr/german/viewtopic.php?t=4370

Ist aber in den meisten Fensteranwendungen unnötig. Kann mir eigentlich
nur Malprogramm mit Tastaturunterstützung vorstellen.

Normal reichen Keyboardshortcuts und EditControls sollte man besser
Subclassen.

Verfasst: 08.08.2007 09:21
von real
ts-soft hat geschrieben: Normal reichen Keyboardshortcuts und EditControls sollte man besser
Subclassen.
Vorsicht! Das ist das Anfänger-Board... :wink:

Verfasst: 08.08.2007 09:42
von ts-soft
real hat geschrieben:Vorsicht! Das ist das Anfänger-Board... :wink:
Das ändert nichts an der Tatsache, das dies die einzig vernünftige Lösung ist.

Verfasst: 08.08.2007 10:23
von ts-soft
martin66119 hat geschrieben:Hi and good morning!

By using following simple code it is possible to check if a key (e.g. "A") was pressed. But it worked only if the program is running in "foreground" (active window).

May question is:Is it possible to modify the code that pressing a key (e.g. A) change to a specified window independent which window is the active window (foreground window).

I want to implement a function, if someone enter the room and he may not or should not see what I doing.

Thanks in adwance

Code: Alles auswählen


Structure keys 
  Wert.l 
  Name.s 
EndStructure 
NewList Keys.keys() 
AddElement(Keys()) 

ddElement(Keys()) 
Keys()\Wert = #VK_A 
Keys()\Name = "VK_A" 
AddElement(Keys()) 
Keys()\Wert = #VK_B 
Keys()\Name = "VK_B"

OpenWindow(0,0,0,400,300,"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 + " *was pressed*" 
        EndIf 
      Next 
    EndIf   
  EndIf 

Until ereignis.l = #PB_Event_CloseWindow 
Ich bin begeistert :?

GetAsyncKeyState_(, diese API sollte Dir helfen, ansonsten gibts ja die
Suchfunktion

Verfasst: 08.08.2007 10:35
von Kiffi
ts-soft hat geschrieben:Ich bin begeistert :?
kann ich nachvollziehen. Da fühlt man sich schon ein wenig verarscht.

Grüße ... Kiffi

Verfasst: 08.08.2007 10:49
von ts-soft
Kiffi hat geschrieben:
ts-soft hat geschrieben:Ich bin begeistert :?
kann ich nachvollziehen. Da fühlt man sich schon ein wenig verarscht.

Grüße ... Kiffi
Ich hab so das Gefühl, die halten uns für blöd. Egal, kommt auf meine
Liste für Spezialbehandlung :mrgreen:

Tastenabfrage

Verfasst: 08.08.2007 11:58
von Martin66119
Entschuldigt bitte wenn ich die gleiche Frage in beiden foren gestellt habe.
Das ich das geleich Frage, war mir so nicht bewußt. Da kam wohl daher, dass ich die erste Antwort nicht richtig verstanden oder umgesetzt habe.

Werde künftig mich besser an die Regel halten. Sorry nochmal.

Verfasst: 08.08.2007 12:01
von Kaeru Gaman
von wann isn seine frage im englischen?

aber is schon witzig.. in deinem ersten posting steht alles drin... topic4370 sollte ausreichen...

> I want to implement a function, if someone enter the room and he may not or should not see what I doing.
naja.. ich bin mal gespannt, wie er das hinbekommen will die richtigen fenster zu verstecken... :lol:
da werden wir bestimmt auch noch mit fragen bombardiert... :roll:

Re: Tastenabfrage

Verfasst: 08.08.2007 12:19
von ts-soft
Martin66119 hat geschrieben:Entschuldigt bitte wenn ich die gleiche Frage in beiden foren gestellt habe.
Das ich das geleich Frage, war mir so nicht bewußt. Da kam wohl daher, dass ich die erste Antwort nicht richtig verstanden oder umgesetzt habe.

Werde künftig mich besser an die Regel halten. Sorry nochmal.
Wenn Du hier eine Antwort erhälst, und diese entspricht nicht ganz Deinen
Erwartungen, was dann meist an ungenauer Spezifizierung liegt, solltest Du
doch bitte dort Nachfragen, wo Du bereits eine Antwort erhalten hast und
nicht den Source, der durch meine Antwort gefunden wurde im englischem
Posten um dort dann weitere Infos zu holen.

Ich habe mir die Mühe gemacht, den Link für Dich rausgesucht, weil Du evtl.
mit der Suchfunktion nicht klar kommst und im engl. heimst einer das Danke
ein :mrgreen:

Egal, fröhlichen Mittwoch noch