Подберите pid к схеме рабочего стола приложения в Linux - PullRequest
1 голос
/ 28 ноября 2011

Все совместимые со стандартами приложения в Linux хранят схему рабочего стола в / usr / share / Applications /. В моем конкретном случае использования у меня есть структура данных WnckWindow, и я могу получить pid из этого. Используя этот pid, я могу извлечь командную строку из proc.

К сожалению, похоже, что запись командной строки proc не соответствует параметрам запуска схемы рабочего стола. Например, приложение 'thunderbird' запускается через / usr / bin / thunderbird, но это всего лишь сценарий оболочки, который активирует реальный исполняемый файл: /usr/lib/thunderbird-8.0/thunderbird-bin.

Реальный исполняемый файл не может быть запущен напрямую, поскольку он зависит от путей к библиотекам, настроенных в скрипте / usr / bin / thunderbird. У кого-нибудь есть какие-либо советы о том, как сопоставить номера идентификаторов процессов с соответствующей схемой рабочего стола, не затрагивая описанную мной проблему ?, Спасибо.

1 Ответ

1 голос
/ 02 декабря 2011

Хорошо, похоже, что нет хорошего способа решить эту проблему с помощью pid, однако сравнительно легко сопоставить класс Windows Wnck со схемами рабочего стола приложения. Windows-класс Wnck необходимо предварительно немного обработать, чтобы убедиться, что фильтр работает, но это довольно тривиальная вещь. Получив хороший набор целевых строк, например, «Thunderbird» или «Google» + «Chrome», вы можете использовать API меню системного приложения, чтобы сосредоточиться на вероятном кандидате, например, с помощью garcon на Xfce.

...