1

全て

私は Delphi 2007 で CreateProcess と WaitForSingleObject を使用してファイルを開き、ファイルが閉じられるのを待ちます。2 つの PDF ファイルを続けて開くと、2 番目の WaitForSingleObject がすぐに返されることがわかりました。また、これはjpgおよびtifファイルでは発生しますが、txtファイルでは発生しないことがわかりました。また、2 番目の PDF を開くのに、単独で開いた場合よりも 10 秒長くかかります。また、Vista と XP の両方、およびさまざまなコンピューターで発生します。CreateProcess を間違って使用していますか、それとも別のものですか?

どんな助けでも大歓迎です。

よろしく

ボブ

4

1 に答える 1

2

何が起こるかは、PDFまたはJPGファイルを開くために登録されているアプリケーションによって異なります。SDIアプリケーションでドキュメントを開くと、CreateProcess()呼び出しごとに、アプリケーションのプロセスハンドルが返されます。これは、待機できます。これは、ドキュメントを編集しているアプリケーションが閉じたときに返されます。

ただし、アプリケーションが単一のインスタンスに制限されている場合、新しいインスタンスが最初のインスタンスにデータを渡し(通常は新しいフレームでドキュメントを開きます)、終了するとすぐに、それ以降のすべての呼び出しが返されます。それがあなたの場合に起こることだと思います、おそらくあなたはAcrobat Readerを使ってPDFファイルを開いていますか?

于 2009-04-15T19:18:06.560 に答える