2010-12-03 12 views
0

Word文書へのバージョン管理されたリンクを提供するWinFormsアプリケーションがあります。ユーザーがリンクをクリックすると、Word文書が開きます。私の要件は、Word文書を開き、変更を実行し、文書を保存して閉じ、変更が行われたことを検出し、新しいバージョンのコピーをデータベースにアップロードするときです。私は現在、次のことを行っているWinForms - Word文書を処理閉じるイベント

:それはうまく動作するはずのよう

ProcessStartInfo psi = new ProcessStartInfo(FilePath) { UseShellExecute = true }; 
Process process = Process.Start(psi); 
process.EnableRaisingEvents = true; 
process.Exited += process_Exited; 

これはそうです、しかし、私はいくつかの問題に遭遇した:

  1. ユーザーを簡単にすることなく、実際のドキュメントを閉じることができますWordを終了すると、Exitedイベントは発生しません。
  2. 文書を開くためにリンクをクリックしたときにWordが既に開いている場合、Process.Startメソッドはnullを返します。
  3. 私のユーザーはWinFormsアプリケーションを閉じることができ、Word文書は開いたままにしておくことができます。ユーザーがアプリケーションを終了した後に変更を加える可能性があり、変更がデータベースに保存されないため、問題が発生する可能性があります。

希望の結果を得るために必要なオプションはありますか?誰も似たようなことをしたことがありますか?

ありがとうございました。

+0

を作るために何であるかについての詳細を知っている必要があります

彼らは今のようなイベントを持っている場合、私は覚えてカント、それらをチェックする価値があるかもしれません。 – Machinarius

答えて

0

Word用の.NETプラグインを作成できます。 これは、Wordのイベントをより詳細に制御する必要があります。 (あなたのドキュメントは、中央の場所に格納されている場合)

0

に対処するには、「彼らは私のアプリを閉じた場合、彼らが閉じる前に文書の問題 "、

単語の文書が開いている間にユーザが風俗アプリを閉じようとした場合:

アイデア1: 1. winformアプリケーションを非表示にします。 2.ドキュメントが閉じたら、winformアプリケーションを終了します。

アイデア2: 1.アプリケーションを閉じる前に、文書を閉じる必要があることを示すメッセージを表示します。私はあなたにもWordのCOMライブラリを試すかもしれないと思うソフトウェアの目的は、より良いsoultion

関連する問題