Linux Sendkey?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Krauzi
User
Beiträge: 77
Registriert: Montag 22. Oktober 2007, 18:06
Kontaktdaten:

Hi leute, ich bin langsam am verzweifeln. Ich brauche eine möglichkeit, mein wc3 bot auf stabilität zu überprüfen. Dazu muss ich an meinen wc3 client (läuft mit wine) die tastenkombination "!asdf <enter>" schicken. Unter windows war das kein problem, schließlich gabs ein SendKeys module (siehe google "python sendkey"). Aber da ich unbedingt mein programm auch unter linux testen will (ist in c++ geschrieben), wollte ich eigentlich das ganze hier ebenfalls noch testen.
Jetzt hab ich schon recht lange gegoogelt aber rein gar nichts gefunden.
Hoffe hier kann mir jemand helfen.

Cheers Krauzi
Benutzeravatar
naeg
User
Beiträge: 33
Registriert: Dienstag 27. April 2010, 11:53

Es gibt ein Tool names "xdotool", mit dem man Keys senden kann.
http://www.semicomplete.com/projects/xdotool/

Erstes Post übrigens: Hallo alle zusammen :)
mfg naeg
fred.reichbier
User
Beiträge: 155
Registriert: Freitag 29. Dezember 2006, 18:27

Tachchen und willkommen naeg ;)

unter Linux macht man das mit der X-Server-Extension xtest, die auch xdotool benutzt. Man könnte in Python dafür ein X-Protokoll-Binding (python-xlib oder ooxcb) oder auch virtkey nehmen. Wie man virtkey dafür benutzen kann, steht hier. :)

Gruß,

Fred
Krauzi
User
Beiträge: 77
Registriert: Montag 22. Oktober 2007, 18:06
Kontaktdaten:

virtkey klappt ja ausgezeichnet, vielen dank für die lib die standarmäßig (oder spätestens mit apt-get python-dev) installiert ist.
Klappt echt super.
Krauzi
User
Beiträge: 77
Registriert: Montag 22. Oktober 2007, 18:06
Kontaktdaten:

hm mit ich finde nur keine option, <enter> zu senden :(.
Kennt da zufällig jemand den richtigen code für?
fred.reichbier
User
Beiträge: 155
Registriert: Freitag 29. Dezember 2006, 18:27

Hm, mit Keycodes sollte man vorsichtig sein, die sind abhängig von deiner Hardware. Sind also nicht unbedingt auf jedem PC die gleichen. Keysyms sind unabhängig von Hardware, und ich seh grad, virtkey hat wohl auch `press_keysym`. Der Keysym von Return ist 0xff0d, `press_keysym(0xff0d)` sollte also eigentlich funktionieren.

Gruß,

Fred
Antworten