powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как поймать событие?
7 сообщений из 7, страница 1 из 1
Как поймать событие?
    #33024724
AVVS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте все!

Вопрос: как поймать событие о потере фокуса приложением?
Т.е. если фокус теряет форма (мы переходим на другую форму в том же приложении), то это понятно.
А если пользователь нажал [Alt+Tab] или еще как перешел в другое приложение, возникнет ли какое-то событие в текущем? А если возникнет, то как его поймать?

AVVS
...
Рейтинг: 0 / 0
Как поймать событие?
    #33024957
Дурак
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приложением не знаю, а формой , по-моему, Form_Deactivate()
...
Рейтинг: 0 / 0
Как поймать событие?
    #33024968
Дурак
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MSDN(Form Events and Methods)
Deactivate event occurs when another form or application becomes active.
...
Рейтинг: 0 / 0
Как поймать событие?
    #33025006
AVVS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дурак MSDN(Form Events and Methods)
Deactivate event occurs when another form or application becomes active.



У меня немного другие сведения:

MSDN (Activate,Deactivate Events)

The Activate and Deactivate events occur only when moving the focus within an application. Moving the focus to or from an object in another application doesn't trigger either event. The Deactivate event doesn't occur when unloading an object.



Это событие ловится только внутри приложения. В MSDN правильно написано, я проверял.

Для моего случая не работает.
...
Рейтинг: 0 / 0
Как поймать событие?
    #33025915
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Фокус есть свойство окна, а не приложения, и то, что показывается по alt+tab, это открытые top-level окна, которые могут принадлежать и одному приложению. Единственный способ получить что-то похожее на App_Deactivate - организовать коллекцию открытых окон, на событие Deactivate навесить установку флажка, позазывающего, что форма деактивирована. А когда надо, сравнивать что-то типа AppForms.Count = AppForms.DeactivatedCount
...
Рейтинг: 0 / 0
Как поймать событие?
    #33031964
under
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А мона сделать по тупому! В лоб шо называется!

Декларируем GETфореGROUNDWINDOW (что-то в таком роде....)
Делаем таймер.
ДИМим Переменные My и They как ДУБЛ
При загрузке формы получем индификатор нашего окна (любимого).
А по таймеру сверяем Индефикаторы окон. Не наше? Тогда это EVENT!!!!
...
Рейтинг: 0 / 0
Как поймать событие?
    #33032112
under
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
во! Api:

Код: plaintext
Public Declare Function GetForegroundWindow Lib "user32" () As Long
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как поймать событие?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]