/ / Закриття модального спливаючого вікна з vb.net? - vb.net, winapi, автоматизація, модальний діалог, зовнішній процес

Закриття модального спливаючого вікна з vb.net? - vb.net, winapi, автоматизація, модально-діалог, зовнішній процес

Я хочу зачекати і закрити модальну форму (спливаюче вікно) з іншої програми, як тільки вона з’явиться. Я хочу це зробити з VB.NET, але пропозиції в C # повинні бути легко перекладними.

Я можу жорстко кодувати модальний надпис у моємудодаток, оскільки він довгий і унікальний. Те, що я хочу зробити, - це імітувати користувача або натиснути кнопку закрити ("X") у формі, або натиснути на дефект, впорядкувати вкладку 0 кнопки форми. Або працювало б.

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

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

Дякуємо за те, що поділилися трішки гуру-нату! : D

P.S .: Це може бути тривіально в AutoHotkey. Я відчуваю кульгавість, не знаючи цього, Я знаю, що мені це потрібно.

Відповіді:

1 для відповіді № 1
IntPtr handle = FindWindow(null, "Dialog_Title");
SendMessage(handle, WM_NCDESTROY, 0, 0);

Це має закрити діалогове вікно