У меня есть многопоточное приложение, которое запускает много похожих процессов.
Иногда один из процессов выдает MessageBox с ошибкой, что отрицательно влияет на все приложение.
Я бы хотел иметь возможность вывести этот MessageBox и отправить ему команду кнопки ОК / ЗАКРЫТЬ.
Большая проблема в том, что MessageBox / Window не имеет заголовка, поэтому я не могу использовать это:
IntPtr window = FindWindow(null, "");
while (window != IntPtr.Zero)
{
Console.WriteLine("Window found, closing...");
//use some function to close the window
SendMessage((int)window, WM_SYSCOMMAND, SC_CLOSE, 0);
window = IntPtr.Zero;
}
Как я могу настроить этот код, или как я могу использовать что-то подобное, что бы найти окно без заголовка и закрыть его?
Нужно ли мне повторять процессы?Помните, что процессы имеют похожие имена, поэтому, хотя я мог бы получить все процессы с определенным именем, у меня были бы проблемы с поиском того, который вызывает проблему ...
PS: я не могу редактироватькод приложения, я должен сделать этот маленький маленький FIX сейчас.