Unter MS/Windows gibt es viele nützliche Funktionen, um alle offenen Windows zu erfassen (EnumWindows), ihre Handles (HWND) zu erfahren und ihnen Botschaften zu senden (SendMessage()). Gibt es was vergleichbares auch in Linux/X11? Ich meine nicht die Prozesse mit ihren ID, sondern schon vergleichbares mit HWND.
Ich habe gegoogelt und das hier gefunden: http://brugbart.com/autoit-alternative-linux https://github.com/jordansissel/xdotool Ist leider nur ein terminal Programm und keine Bibliothek um selber Programmer zu schreiben, aber im Prinzip ist das schon mal nicht schlecht, d.h. geht in eine ähnliche Richtung.
Gast
#3608040
Ohne genauere Ahnung zu haben könnt ich mir vorstellen dass es da nichts universelles gibt, sondern mögliche Lösungen abhängig sind von der gewählten Desktopumgebung/Fenstermanager.
xdotool funktioniert angeblich für alle x11 Umgebungen und bei meiner (lxde) konnte ich das verifizieren. Mal schauen, das Tool ist sehr mächtig.
Gast
#3608052
Die ganzen Lowlevel-Funktionen zur Fenster und Nachrichtenverwaltung findest du in der X11 API (clientside). Hier die umfangreiche Dokumentation: http://www.x.org/releases/X11R7.5/doc/libX11/libX11.html Da findest du die z.B auch die Handles:
1 | |
2 | |
Sicher findest du aber auch Tutorials dazu.
Gast
#3608060
Da ist mir doch noch was dazu eingefallen. Eine schöne Einführung in X11 (und sogar Linux C Programmierung): http://openbook.galileocomputing.de/linux_unix_programmierung/Kap14-000.htm#Xxx999235
Unter KDE z.B. kannst du per DBUS viele Programme fernsteuern. Ist evtl. einfacher als auf X11-Ebene anzusetzen, da auf einem viel höherem Level eingegriffen wird. (Geht vermutlich auch ähnlich unter Gnome) DBUS-Bindings gibt's für so ziemlich jede Script- und Programmiersprache. http://www.bramschoenmakers.nl/en/node/609
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.