Обнаружение переключателя полноэкранного режима без ручной проверки каждую секунду
У меня самое верхнее окно. Мне нужно, чтобы он был самым верхним по сравнению с любым другим самым верхним окном, но не покрывал какое-либо полноэкранное окно: в частности: {Windows Media Player, Youtube flash player, RDP}
Существует решение с постоянными проверками:
- каждые миллисекунды ГГГ, которые я проверяю, есть (на том же дисплее) другое самое верхнее окно с размерами, равными размерам экрана.
- если так: сделайте мое окно не верхним, иначе сделайте его самым верхним.
Но я ищу другое менее ресурсоемкое решение, которое не будет выполнять десятки системных вызовов и обходить дерево самых верхних окон каждую секунду.
Я могу справиться с любым WM_
Я могу ввести крючок в процесс.
Эта проблема:
Как определить полноэкранное окно на одном рабочем столе?
Как определить полноэкранный режим, используя входящие WM_ или любой другой метод, кроме непрерывной проверки?
1 ответ
Проверять, выписываться SetWindowsHookEx()
установить крючок CBT (WH_CBT). В частности, в вашем CBTProc()
вы получите WHCBT_MOVESIZE
уведомление, когда окно перемещается или размер.