powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / проверка окна на валидность
13 сообщений из 13, страница 1 из 1
проверка окна на валидность
    #37602134
Фотография surbanec
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
имею хендл окна.
нужно проверить действителен ли этот хендл
т.е существует ли это окно на данный момент?
...
Рейтинг: 0 / 0
проверка окна на валидность
    #37602171
хендл
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
есть специальная апи функция
IsWindow
...
Рейтинг: 0 / 0
проверка окна на валидность
    #37602189
Фотография surbanec
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чтото не получается((

после закрытия формы чей хендл у меня имеется всё равно IsWindow=1 ( как быть?
...
Рейтинг: 0 / 0
проверка окна на валидность
    #37602191
Фотография surbanec
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пардон добавлю что компонент от моей программы встраивается в стороннее окно. и когда окно закроют нужно отловить этот момент и выполнить определённую процедуру
...
Рейтинг: 0 / 0
проверка окна на валидность
    #37602215
хендл
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IsWindow=1 значит окно просто скрыто а не уничтожено
более того если делать fmrInstance.Hwnd тк оно всегда будет существовать тк этот вызов создает окно если его еще не было

авторкомпонент от моей программы встраивается в стороннее окно


это можно сделать кучей способов

но отследить закрытия окна можно с помощью обработки WM_DESTROY это самый надежный способ
а может окно которое закрывается может послать событие тогда его можно обработать
...
Рейтинг: 0 / 0
проверка окна на валидность
    #37602225
хендл
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
еще можно просто FindWindow это гораздо проще
...
Рейтинг: 0 / 0
проверка окна на валидность
    #37602226
Фотография surbanec
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хендл,

пробовал) но там несколько таких окон с таким же классом и текстом.(
...
Рейтинг: 0 / 0
проверка окна на валидность
    #37602229
Фотография surbanec
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а можно по подробнее с WM_DESTROY ?)
...
Рейтинг: 0 / 0
проверка окна на валидность
    #37602255
хендл
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторно там несколько таких окон с таким же классом и текстом


ну так они чем-то все равно отличаются
например принадлежат одной и той же thread
соответственно находим thread нашего окна
потом находим родительское окно по заголоваку или классу и у которого тот же thread

авторподробнее с WM_DESTROY


это низкоуровневый подход
вариант 1 надо переопределить оконную процедуру родительского окна отловить в ней WM_DESTROY и послать в этом обработчике сообщение дочернему окну
вариант 2 использовать SetWindowsHookEx CBT_HOOK тогда событие удаления окна придет в процедуру обработки
...
Рейтинг: 0 / 0
проверка окна на валидность
    #37602282
хендл
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
кстати если наше дочернее окно закрывается когда закрывается родительское то в дочернее окно тоже придет WM_DESTROY те все операции по отслеживанию закрытия можно делать с нашим окном а не с родительским а родительское вообще не трогать
...
Рейтинг: 0 / 0
проверка окна на валидность
    #37602314
Фотография surbanec
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хендл,

как организовать первый способ?
я просто в таком деле не соображаю вообще..(
я раньше такое делал только намного проще но забыл уже...
...
Рейтинг: 0 / 0
проверка окна на валидность
    #37602327
хендл
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
есть хендл окна
для него есть специальный системный вызов который позволяет задать свою собственную процедуру окна
естественно собственную процедуру окна надо написать
после установки собственной процедуры окна обрабатываем сообщения которые нас интересуют остальные сообщения передаем оригинальной процедуре окна

поищите
"переопеределение процедуры окна"

у меня нет готового кода
...
Рейтинг: 0 / 0
проверка окна на валидность
    #37602358
Фотография surbanec
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хорошо спасибо сейчас чтонить может придумаю
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / проверка окна на валидность
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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