Dr. Jürgen Vollmer schrieb:
Ich würde gerne per script eine Taste "ausgeben". Genauer: Kann man auf einer Shell den Code einer Taste ausgeben, sodass ich in einem Script irgendwas machen lasse und dann enter oder sonst was gedrückt wird (nicht vom user, sondern halt simuliert)?
huch, Tastatureingabe ist doch nichts anderes als Lesen einer Datei, i.d.R. stdin.
Das empfangende "Skript" ist was? Eine X-Applikation oder ein gewöhnliches C/Shell/Perl-Programm, welches nur stdin/stdout/stderr bearbeitet?
Zum Testen von interaktiven Programmen (also solche via stdin/stdout) gibt es expect - programmed dialogue with interactive programs
Expect is a program that "talks" to other interactive programs accord- ing to a script. Following the script, Expect knows what can be expected from a program and what the correct response should be. An interpreted language provides branching and high-level control struc- tures to direct the dialogue. In addition, the user can take control and interact directly when desired, afterward returning control to the script.
Hallo Jürgen! Hallo Daniel! Hallo alle anderen! Ich hab lineakd eingerichtet, sodass meine Extra-Tasten (Hotkeys auf der Tastatur, zB Browser oder Mail) funktionieren. So kann ich zB amarok steuern. Nun möchte ich, dass amarok, wenn ich auf einen anderen Extra-Key drücke, das OSD (Titel des aktuellen Songs, Interpret, Zeit) anzeigt. Dazu drück ich normalerweise [win-taste]+[o], dann bringt er das OSD. Nun möchte ich das über lineakd machen, dass ich die Extra-Taste drücke und dann das amarok-osd angezeigt wird. Ich habe hierzu von Daniel (siehe: http://lists.suse.com/archive/suse-linux/2003-Jun/2658.html) das script kompiliert, wenn ich es von der Konsole starte, funktioniert es auch. Nur über lineakd nicht. Er zeigt einfach nichts an. auch über ein scipt, das vorher ein export DISPLAY=:0.0 macht, hilft nichts. Aber wenn ich im gleichen script kdialog --msgbox help ausführen lasse, zeigt er das an. Woran liegt das? Hast du eine andere Lösung? Vielleicht mit stdin? Es soll halt mit lineakd funktionieren. Danke für die Arbeit Martin Ereth