Единственным путем я знаю, чтобы сделать, это должно пересечь дерево окон, пока Вы не находите то, что Вы ищете. Пересечение не трудно (просто видят, какой xwininfo - корень - дерево делает путем рассмотрения xwininfo.c при необходимости в примере).
, Но как Вы определяете окно, которое Вы ищете? [приблизительно 110] приложения устанавливают свойство окна, названное _NET_WM_PID.
я полагаю, что OpenOffice одно из приложений, которое устанавливает то свойство (также, как и большинство приложений Gnome), таким образом, Вы находитесь в удаче.
Убедитесь, что / proc / PID / Environment содержит переменную с именем WINDOWID
Вы уверены, что у Вас есть идентификатор процесса каждого экземпляра? Мой опыт с ООО состоял в том, что попытка выполнить второй экземпляр ООО просто разговаривает с первой инстанцией ООО и говорит что открыть дополнительный файл.
я думаю, что Вы собираетесь должны использовать отправляющие сообщение возможности X для выяснения у него приятно его окно. Я надеялся бы, что ООО документирует свой coversations где-нибудь.
Нет никакого хорошего пути. Единственные реальные опции, которые я вижу: