Вопрос

Я хочу дождаться и закрыть модальную форму (всплывающее окно) из другого приложения, как только она появится.Я хочу сделать это с помощью 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);

Это должно закрыть диалог

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top