Prozessname des aktuellen Fensters ermitteln
-
Hi!
Ich habe folgendes Problem, ich würde gerne den Prozessnamen des aktuellen Fensters ermitteln. Mit folgendem Code kann man den Titel ermitteln, bloß leider wird bei vielen Programmen ein leerer String zurückgeliefert, weswegen ich gerne den Processnamen herausfinden würde. Weiß jemand wie das geht?
int revert_to_return; XTextProperty text_prop_return; XGetInputFocus(display, &focus_return, &revert_to_return); XGetWMName(display, focus_return, &text_prop_return); QString title = text_prop_return.value;
-
Hi, habe nun nach einigem Suchen herausgefunden wie man weitere Infos bekommen kann und zwar über XGetClassHint().
Kann man z.B. so ermitteln:XGetInputFocus(display, &focus_return, &revert_to_return); XClassHint class_hint; XGetClassHint(display, focus_return, &class_hint); QString name = class_hint.res_name; QString hint = class_hint.res_class; lineEdit_2->setText(QString("Rückgabe: '%1' und '%2'").arg(name.left(30)).arg(hint.left(30)));
Bei QDevelop als aktives Fenster wird so z.B. zurückgegeben "'qdevelop' und 'Qdevelop'". Allerdings bei Firefox oder OOo bekomme ich auf diese Weise nur Müll zurück. Weiß jemand warum und wie ich das ändern kann?
Danke.
Tsunami
-
Was du da holst ist die Klasse und die kann beliebig vom Programm gesetzt werden. Das hat nichts mit dem Namen der Anwendung zu tun.
google x11 process id: http://www.mail-archive.com/devel@xfree86.org/msg05809.html
funktioniert aber halt nicht immer
-
Danke für deinen Tip, ich habe es aber mittlerweile endlich geschafft den Titel jeden Fensters auszulesen. Das reicht aus, damit der User entscheiden kann, ob mein Programm mit dem und dem Programm zusammenarbeiten oder ideln soll.
Trotzdem nochmals danke!