Закрытие модального всплывающего окна с vb.net? - PullRequest
2 голосов
/ 15 декабря 2009

Я хочу дождаться и закрыть модальную форму (всплывающее окно) из другого приложения, как только оно появится. Я хочу сделать это из VB.NET, но предложения в C # должны легко переводиться.

Я могу жестко закодировать заголовок модального всплывающего окна в моем приложении, так как оно длинное и уникальное. То, что я хочу сделать, это смоделировать либо пользователя, нажимающего кнопку закрытия («X») в форме, либо щелчка по ошибке, кнопке порядка табуляции 0 формы. Либо будет работать.

Может быть, мне нужно больше информации о модальном всплывающем окне, кроме заголовка строки заголовка? В любом случае, безопасно использовать его как уникальный идентификатор этой модальной формы. Я также хочу, чтобы этот код прекратил проверку, как только произойдет первое событие закрытия всплывающего окна.

Я считаю, что это тривиально, но я не могу найти никакой информации об этом. Microsoft говорит, что я не должен отправлять WM_CLOSE в модальное всплывающее окно, поскольку он будет вызывать DestroyWindow () вместо EndDialog () , но, честно говоря, я даже не знаю, что «отправка WM_CLOSE» в «окно» означает = /

Спасибо, что поделились с нами немного гуру! : D

P.S .: Это может быть тривиально в AutoHotkey. Я чувствую себя хромым, не зная этого, Я знаю, что мне это нужно .

1 Ответ

1 голос
/ 16 декабря 2009
IntPtr handle = FindWindow(null, "Dialog_Title");
SendMessage(handle, WM_NCDESTROY, 0, 0);

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

...