Программно закрывать 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);
}

ИИ для рефератов и докладов


  • Экспорт Word по ГОСТу
  • Минимум 80% уникальности текста
  • Поиск релевантных источников в интернете
  • Готовый документ за 2 минуты

Оцени полезность:

15   голосов , оценка 4.267 из 5
Похожие ответы