Как обнаружить изменения в системном трее Windows?

У меня есть виртуальная машина Windows 7, на которой работают мои обязательные корпоративные системы связи (Lync и Outlook). То, что я хотел бы сделать, — это запустить на этом компьютере Windows процесс, который отслеживает системный трей и отправляет уведомления на мой компьютер (Xubuntu 13.04), поэтому я получаю информацию, когда получаю электронное письмо или мгновенное сообщение (я уже пробовал без проблем) RDP, чтобы сделать это, но это неэффективное решение).

Со всем, что ориентировано на Linux или сеть, я могу справиться с относительной легкостью, но я не знаю, как это сделать, — как запросить состояние системного трея Windows (или подключить прослушиватель событий для изменений состояния). Я чувствую себя комфортно с C ++ и Python, но я попробую любое жизнеспособное решение.

Подробная информация о состоянии была бы предпочтительнее, но, как минимум, мне нужно было бы обнаруживать изменения в количестве значков в трее.

8

Решение

В Windows, если вы устанавливаете Visual Studio, среди инструментов Visual Studio есть полезный инструмент под названием «Spy ++», в основном это инструмент, который показывает вам все окна и дает возможность видеть, какие сообщения получает конкретное окно.

введите описание изображения здесь

Используя этот инструмент, вы можете видеть, что вся панель, которая содержит «кнопку Пуск», ярлыки, трей, часы и т. Д., Является «Shell_TrayWnd». Вы можете использовать меню «Поиск» для поиска определенного окна, просто перетащив «цель» в любое окно.

Само окно трея — «SysPager» (000100D2 на прикрепленном изображении), вы можете регистрировать сообщения для этого окна и видеть, какой тип сообщения это окно получает при получении почты в Outlook.

После этого вы можете написать код, который будет прослушивать все сообщения, которые получает это окно, и на основе того, что вы видели в «Spy ++», определить, что произошло.

Это только для начала. Написание кода, который получит дескриптор окна и прослушивает сообщения, которые получает окно, — это еще одна часть, но я думаю, что это уже описано в MSDN или даже в StackOverflow.
Поиск определенного дескриптора окна выполняется FindWindowEx функция и для того, чтобы прослушать сообщение, вы должны установить «крюк», который делается SetWindowsHookEx функция. Хукинг описан довольно хорошо на MSDN.

3

Другие решения

может быть вам нужен инспектор Outlook (http://msdn.microsoft.com/en-us/library/office/ff869356(v=office.15).aspx). Насколько я понимаю, это помогает наблюдать за процессами развития событий.

0

По вопросам рекламы [email protected]