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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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