Получить второе активное окно vb.net

Мне нужно создать форму, где AlwaysOnTop = True, когда браузер виден. Это создает своего рода «наложение». Логика работает так:

  • Программа проверяет, какое окно активно.
  • Если активные окна - это определенный процесс, моя форма инициализирует утилиту TopMost и сама будет активным окном.
  • Когда определенный процесс больше не является активным окном, моя форма исчезнет.

Как я это сделал:

  • Моя программа проверяет, является ли браузер активным окном, если да: форма становится самой верхней и программа перестает проверять, какое окно является активным. (потому что моя самая верхняя форма сейчас является активным окном).
  • Теперь программе нужно проверить, какое окно находится под моей формой, второе активное окно.
  • Если это больше не браузер, форма должна быть скрыта, и программа снова проверит, какое окно активно.

Я уже выполнил функцию, которая проверяет первое активное окно,

Я застрял на получении функции, которая проверяет, что такое второе активное окно.


person c0ffee    schedule 17.12.2011    source источник
comment
рядом с ответом Джона есть пустая галочка, которую нужно щелкнуть   -  person Jeremy Thompson    schedule 18.12.2011


Ответы (1)


Я не уверен, что есть такая вещь, как «Второе активное окно» - оно либо активно, либо нет.

Почему бы вам не оставить активную программу проверки окон, запущенную после первого шага обнаружения браузера.

Вы можете определить, когда активное окно больше не является вашей формой, и тогда скрыть оверлей.

person Jon Egerton    schedule 17.12.2011
comment
Я пробовал это, но моя форма остается наверху по этой причине: она самая верхняя и она будет оставаться наверху, что бы ни случилось. Я делаю полностью перемещаемую панель инструментов для любой программы. когда эта программа активна, панель инструментов должна быть видимой, даже если щелкнуть программу, которая требует наложения. Когда вы нажимаете кнопку в браузере, моя форма больше не активна, и если она не находится на самом верху, она исчезает в фоновом режиме. - person c0ffee; 17.12.2011
comment
Ах да, вы уверены, что тогда обнаруживаете активное окно, а не самое верхнее. Как вы сами сказали, это несколько разные вещи. - person Jon Egerton; 17.12.2011
comment
Вы правы, самое верхнее - это самое верхнее окно, а не активное окно! Спасибо, я за вашу помощь могу продолжить. - person c0ffee; 17.12.2011