У меня есть сторонняя библиотека шифрования, которая может создать MessageBox в случае сбоя при создании ключа. Ошибка может быть вызвана неправильным генерированием случайных чисел или другими раритетами, и в большинстве случаев повторная попытка приведет к успеху. Мой код будет пытаться создать ключ до трех раз, прежде чем решить, что это не удалось.
Теперь проблема в том, что программа может использоваться с автоматизацией. Если MessageBox создается во время автоматизации, он навсегда блокирует процесс, потому что никто не нажимает кнопку «ОК».
Кто-нибудь знает, как перехватить это окно с сообщением и автоматически закрыть его?
Все, что является честной игрой, пока это не то, что разозлит наборы безопасности. Это означает отсутствие перехвата или туннелирования кода.
Итак, мне нужно отловить при создании MessageBox и закрыть его. Создание MessageBox находится вне моего контроля. Изменение кода во время выполнения недопустимо.
Кроме того, я заметил, что есть и другие подобные вопросы, но к ним не предъявляются те же требования.
РЕДАКТИРОВАТЬ: Дополнительное примечание, я могу найти окно сообщения через поиск во всех окнах, пока не найду окно с соответствующим названием, а затем отправлю ему сообщение WM_CLOSE, но я не думаю, что это хорошее решение. У меня также нет гарантии, что окно сообщения было / будет отображаться, или как долго после моего звонка оно будет отображаться. Он может отображаться мгновенно, спустя 1200 мс или вообще не отображаться.