CreateProcessを使い外部アプリを起動し、アプリの終了を検知して修理を続けるプログラムを作成したのですが。外部アプリにパラメータで渡したファイルのハンドルがクローズされていないようで、そのファイルを直接(エクスプローラをダブルクリック)すると「アプリケーションにコマンドを送信しているときに、エラーが発生しました。」と云うメッセージが出てしまいます。外部アプリにパラメータで渡したファイルをクローズする方法は無いでしょうか?
ちなみに、その外部アプリとはAcrobat.exe で、パラメータは、「/t c:\temp\AAA.pdf "プリンタ名"」といった感じです。
それはDDEでタイムアウトしているのだと思います。
うちのマシンは性能が悪く、Delphiプロジェクトも時々なります。
タイムアウトの原因として、次のようなパターンも考えられます。
・Acrobat起動
・Acrobat終了開始(終了していない)
・pdf起動(DDE接続開始)
・DDEの接続先であるAcrobatが終了
・DDE送信失敗
時間をおいてもうまく起動しませんか?
にしのさん。ありがとうございます。
おっしゃる通りかどうか判りませんでしたが
PC再起動後は再発しなくなりました。
ツイート | ![]() |