Программно закрывать 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);
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д