Закрытие модального всплывающего окна от vb.net?
-
19-09-2019 - |
Вопрос
Я хочу дождаться и закрыть модальную форму (всплывающее окно) из другого приложения, как только она появится.Я хочу сделать это с помощью VB.NET, но предложения на C# должны легко переводиться.
Я могу жестко запрограммировать заголовок модального всплывающего окна в своем приложении, поскольку он длинный и уникальный.Я хочу имитировать либо нажатие пользователем кнопки закрытия («X») в форме, либо нажатие кнопки по умолчанию в порядке табуляции 0 в форме.И то, и другое сработает.
Может быть, мне нужна дополнительная информация о модальном всплывающем окне, кроме заголовка строки заголовка?В любом случае его можно безопасно использовать в качестве уникального идентификатора этой модальной формы.Я также хочу, чтобы этот код прекратил проверку, как только произойдет первое событие закрытия всплывающего окна.
Я считаю, что это тривиально, но я не могу найти готовой информации по этому поводу.Microsoft говорит, что мне не следует отправлять WM_CLOSE
в модальное всплывающее окно, так как оно вызовет УничтожитьОкно() вместо КонецДиалог(), но если честно я даже не знаю, что такое "отправка" WM_CLOSE
" в "окно" означает =/
Спасибо, что поделились немного гуру!:D
P.S.:Это может быть тривиально в AutoHotkey.Я чувствую себя хромым, не зная этого, Я знаю, мне это нужно.
Решение
IntPtr handle = FindWindow(null, "Dialog_Title");
SendMessage(handle, WM_NCDESTROY, 0, 0);
Это должно закрыть диалог