Программно закрывать MessageBox работающих приложений используя WinApi - C#
Формулировка задачи:
Здравствуйте.
Делаю кликер, который должен закрывать появляющиеся MessageBox'ы приложений.
Сделал тестовое приложение, где по нажатию на кнопку появляется MessageBox(на рис.).
Мой кликер находит тестовое приложение(FindWindow) и нажимает на кнопку вызова MessageBox с помощью SendMessage- все работает исправно.
Но я не могу закрыть сам MessageBox, используя данные процедуры.
Подскажите, КАК закрывать эти MessageBox?
IntPtr appHandle = FindWindow(IntPtr.Zero, "LoginError"); //нахожу окно MessageBox IntPtr loginPromptOKButtonHWND = FindWindowEx(appHandle, IntPtr.Zero, "Button", null); //нахожу окно кнопку в MessageBox SendMessage(appHandle, WM_COMMAND, BN_CLICKED, loginPromptOKButtonHWND);//пытаюсь нажать эту кнопку
Решение задачи: «Программно закрывать MessageBox работающих приложений используя WinApi»
textual
Листинг программы
const uint IDCANCEL = 2; IntPtr hwndMsgBox = FindWindow(IntPtr.Zero, "LoginError"); IntPtr hwndButton = FindWindowEx(hwndMsgBox, IntPtr.Zero, "Button", null); if (hwndMsgBox != IntPtr.Zero && hwndButton != IntPtr.Zero) { SendMessage(hwndMsgBox, WM_COMMAND, IDCANCEL | (BN_CLICKED << 16), hwndButton); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д