У меня есть приложение, которое может открывать PDF-файлы после их создания. Если последовательно генерируются два отчета с одним и тем же именем, вторая попытка завершится неудачей, если в первой копии acrobat все еще открыт PDF-файл, поэтому перед записью PDF-файла я проверяю (с помощью FindWindow) окно с именем документа. Если он найден, я выдаю SendMessage WM_Close.
Это работает нормально, но я проводил некоторые другие тесты и использовал Word для «редактирования» PDF, чтобы держать его открытым, чтобы я мог проверить поведение приложения, когда оно не может записать файл PDF. Теперь, когда мое приложение пытается закрыть окно, Word выводит диалоговое окно «Вы хотите сохранить?». Если я нажму «Отмена», Word останется открытым, мое приложение продолжит работу, и я смогу проверить, ведет ли оно себя разумно, когда встречает файл, в который не может записать.
Все хорошо, но это предупредило меня о том, что использование SendMessage WM_CLOSE для закрытия другого приложения заблокирует мое приложение, если другое приложение откроет модальное диалоговое окно. Есть ли способ обойти это, то есть более сильный (но не слишком сильный) способ закрыть другое приложение? Или «Закрыть и нажать «Отмена», если необходимо». Или я должен использовать асинхронные сообщения?