PDFを作成した後、オプションでPDFを開くことができるアプリがあります。同じ名前で2つのレポートが連続して生成される場合、acrobatの最初のコピーでPDFが開いていると、2回目の試行は失敗します。そのため、PDFを作成する前に、(FindWindowを使用して)ドキュメント名のウィンドウを確認します。見つかった場合は、SendMessageWM_Closeを発行します。
これは問題なく動作しますが、他のテストを行っており、Wordを使用してPDFを「編集」し、PDFファイルを書き込めない場合のアプリの動作をテストできるように開いたままにしました。これで、アプリがウィンドウを閉じようとすると、Wordは「保存しますか」ダイアログをポップアップします。[キャンセル]をクリックすると、Wordは開いたままになり、アプリは続行され、書き込みできないファイルに遭遇したときに、アプリが適切に動作することをテストできます。
すべて良好ですが、SendMessage WM_CLOSEを使用して別のアプリを閉じると、他のアプリがモーダルダイアログをポップアップした場合に、私のアプリが引っ掛かるという事実を警告しました。これを回避する方法はありますか?つまり、他のアプリを閉じるためのより強力な(ただしあまり強力ではない)方法はありますか?または、「必要に応じて閉じてキャンセルをクリックしてください」。または、非同期メッセージを使用する必要がありますか?