Я пытаюсь написать приложение на C #, которое ловит дескриптор скрытых окон, которые появляются при нажатии кнопки («Показать скрытые значки»).
Когда мы не показываем всю область уведомлений, у нас есть скрытые значки на панели задач.
Когда мы нажимаем кнопку («Показать скрытые значки»), которая показывает их, у нас появляется новое окно, в котором находятся все значки:
Скрытые окна отмечены зеленым кружком
Как я могу поймать ручку этого скрытого окна?
Когда я использовал Spy ++, я не мог найти это окно, потому что окна исчезают, когда я нажимаю любую другую клавишу на клавиатуре.
Итак, я нашел маркер кнопки и использовал опцию регистрации:
В результатах регистрации я видел только дескрипторы окон обычной панели инструментов в системном трее:
Так, как я могу поймать ручку скрытого окна (то, которое я пометил зеленым в начале моего вопроса, первая картинка).
Рекомендации (ссылки, которые я нашел, но не помогли мне):
Как получить свойства значков уведомлений с помощью Microsoft Spy ++
Получить информацию о скрытых иконках в трее в windows7
Я преуспеваю !
Мне удалось поймать его с помощью Spy ++:
Кодовое решение:
static IntPtr GetHiddenSystemTrayHandle()
{
IntPtr hWndTray = User32.FindWindow("NotifyIconOverflowWindow", null);
if (hWndTray != IntPtr.Zero)
{
if (hWndTray != IntPtr.Zero)
{
// Windows caption "Overflow Notification Area"hWndTray = User32.FindWindowEx(hWndTray, IntPtr.Zero, "ToolbarWindow32", null);
return hWndTray;
}
}
return IntPtr.Zero;
}
Других решений пока нет …