3

私は次のことをしたいと思います:単語文書が開いているときはいつでも、ある方法でそれを保存する必要があり、ユーザーがそれを入力し始めたら、文書が編集されている時間を節約したいと思います。私はまだ最初のフェーズにあり、ユーザーがドキュメントを開いたときの検出を管理できないようです。Microsoft.Office.Interop.Wordを使用してみましたが、この方法では、ユーザーがドキュメントを開かない限り、Wordアプリケーションを起動したくありません。しかし、Microsoft.Office.Interop.Word.Applicationを初期化したい場合は、それが可能な唯一の方法です。Microsoft.Office.Interop.Word APIを使用して、ユーザーがファイルを開くイベントを検出する方法はありますか?

私は次のことを試しました(ワードオフィスアプリケーションを開くだけなので、明らかに機能しません)

using Word = Microsoft.Office.Interop.Word;
Word.Application oWord = new Word.Application(); 
oWord.Visible = true;
oWord.DocumentChange += new Word.ApplicationEvents4_DocumentChangeEventHandler(oWord_DocumentChange);
...

private void oWord_DocumentChange()
{
   Console.WriteLine("DocumentChange");
}

また、Microsoft.Office.Interop.Word.Documentを使用したかったのですが、使用できませんでした。私は自分のメソッドを開発し始めましたが、このAPIはすでにビルドされているので、それは無駄のようです。どんな助けでも素晴らしいでしょう..ありがとう。

4

2 に答える 2

3

アプリケーション レベルのアドインを作成しようとしましたか。そのアドインには、ドキュメントに対する最初と最後の変更を検出するために必要なすべてのイベント ハンドラーが含まれている必要があります。

于 2012-06-17T16:54:49.177 に答える
0

おそらく、Word の開いているインスタンスを頻繁にチェックし続け、見つかった場合は相互運用機能を使用してそのインスタンスを取得します。

おそらく、FindWindowEnumWindowsなどを使用して Word のインスタンスをチェックし (または、今は思い出せない .Net でそれを行う方法が組み込まれている可能性があります)、GetObjectインスタンスを取得するために使用できます。このリンクGetObjectではvsについて説明してCreateObjectいます。

于 2012-06-17T17:11:57.197 に答える