エクスプローラから開かれるWordを別プロセスにするには
VC++2008にてプログラムを作成しています。
自作プログラム(疑似エクスプローラ)にて、
WordやExcelファイルをCreateProcessにて
オープンし、WaitForSingleObjectにて
ファイルが閉じられるまで待機。
ファイルが閉じられたら、終了処理という流れのシステムを
作成しています。
自作プログラムからオープンする際は、
Officeのコマンドラインオプションを用いて
別プロセスで起動するようにしていますので、
自作プログラムからWord(またはExcel)ファイルを
複数開いても、個別プロセスになるので、
各ファイルが個別に終了処理を行えるようになっています。
(なっていると思っていた)
問題は、自作プログラムからWord(a.doc)を開き、
エクスプローラから別ファイルのWord(b.doc)を開いた際、
b.docは個別にプロセスが作成されず、
a.docで作成した1プロセスにまとめられてしまうことです。
そのため、a.docを閉じても、b.docが開いている限り、
終了処理に移行しません。
APIフックにて、CreateProcessを引っ掛けてみたのですが、
エクスプローラからのファイルオープン時には
呼ばれていないようで、自作プログラム外で
ファイルオープンをした際に、強制的に独自プロセスで
起動する方法が分りません。
自作プログラム起動時に限り、Word,Excelのファイルを
独自プロセスで開かせたいのですが、
解決方法はありますでしょうか?
よろしくお願いします。
お礼
レジストリーの削除により、問題が解決しました。 ありがとうございました。
補足
早速の回答ありがとうございます! エラーメッセージらしきものはでずに、 「Microsoft office wordは動作を停止しました」 とだけでて、画面がホワイトアウトします。 お示していただいたプログラムの修復は2つとも行いましたが、 やはり問題は解決しません。 ちなみに、OSはWindows7 professionalの64bit版です。