Benutzereingabe ohne Graphics?

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

 

Soul Reaver

Betreff: Benutzereingabe ohne Graphics?

BeitragMi, Apr 08, 2009 14:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,

ich hab mal wieder ein kleines Problemchen:

Ich möchte gern ein Programm schreiben, dass nicht sichtbar ist, sprich es wird einfach kein Graphics ausgeführt. Schön und gut, aber jetzt machen mir die Benutzereingaben Schwierigkeiten.
Da KeyDown() etc. nur funktionieren, wenn Graphics ausgeführt wurde, habe ich es mit Events probiert:

Code: [AUSKLAPPEN]

Strict

Repeat
 PollEvent()
Until EventID()=EVENT_KEYDOWN And EventData()=KEY_ESCAPE

End


Selbes Ergebnis: Mit Graphics funktioniert alles wunderbar, sonst passiert nichts.
Gibt es vielleicht eine andere Möglichkeit?

Geeecko

BeitragMi, Apr 08, 2009 15:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Da hilft nur die WinAPI.
Google mal einwenig... oder such auf MSDN.
Ein Tipp: Google nach einem Keylogger in C++ oder C oder sonst was Wink
Dann wirst du schnell fündig.

lg MD
....
 

Soul Reaver

BeitragMi, Apr 08, 2009 15:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Hmm das habe ich schon befürchtet. Rolling Eyes
Leider habe ich echt KEINE Ahnung von externen Funktionen etc. Wirklich null.
Naja ich habe mich auf die Suche gemacht und folgende Funktion gefunden: GetAsyncKeyState

Nunja dann habe testweise diesen Code zusammengeschustert:

Code: [AUSKLAPPEN]

Strict

Extern "Win32"
   Function GetAsyncKeyState(vkey:Int)
End Extern

?Win32
   Function GetKeyState:Int()
      Return GetAsyncKeyState(KEY_A)
   End Function
?

While Not KeyHit(KEY_ESCAPE)
   Print GetKeyState()
Wend


Ja ich weiß da wird nur die A-taste überprüft, aber ich wollt überhaupt mal überprüfen ob sich was tut.
Nun wenn ich nichts drücke wird 0 zurückgegeben, wenn ich A drücke wird -32768 ausgegeben.
Seltsam aber es tut sich was... Bitte um weitere Hilfe... Ich hab sicher einen Blödsinn gemacht.

BtbN

BeitragMi, Apr 08, 2009 15:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Problem dabei ist, das wird nur auf Windows funktionieren. Generell ist es nicht vorgesehen, dass ein Programm, ohne selbst den Fokus zu haben, Key-Events bekommt. Es ist zwar möglich, allerdings geht dies dann schon stark in richtug Keylogger und wird von vielen AV-Tools per Heuristik als Virus erkannt.

Geeecko

BeitragMi, Apr 08, 2009 16:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Genau die Funktion meinte ich Wink
Wenn du prüfen willst, ob eine Taste gedrückt wird:
Code: [AUSKLAPPEN]
GetAsyncKeyState(Taste)&1 ==1
bzw. Code: [AUSKLAPPEN]
GetAsyncKeyState(Taste)&1 = 1

(Warum: http://msdn.microsoft.com/en-u...S.85).aspx)

lg MD
....
 

Soul Reaver

BeitragMi, Apr 08, 2009 16:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Tja wer lesen kann ist klar im Vorteil. Laughing
Danke funktioniert alles super.

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group