Forum: PC-Programmierung Window-Handles und Messaging in Linux/X11


von Jürgen W. (lovos)


Lesenswert?

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.

von Jürgen W. (lovos)


Lesenswert?

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.

von bal (Gast)


Lesenswert?

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.

von Jürgen W. (lovos)


Lesenswert?

xdotool funktioniert angeblich für alle x11 Umgebungen und bei meiner 
(lxde) konnte ich das verifizieren.
Mal schauen, das Tool ist sehr mächtig.

von TriHexagon (Gast)


Lesenswert?

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
Window XCreateWindow(display, parent, x, y, width, height, border_width, depth, 
2
class, visual, valuemask, attributes)

Sicher findest du aber auch Tutorials dazu.

von TriHexagon (Gast)


Lesenswert?

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

von Εrnst B. (ernst)


Lesenswert?

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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.