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