1

名前を付けて保存を無効にするか、ユーザーがファイル名を変更できないようにする必要があります。

私のアプリケーションでは、ユーザーが提供するヘッダーを使用してMailMergeドキュメントを作成できます。これは、ユーザーが単にWordを保存して終了する場合に機能します。ユーザーが名前を付けて保存すると、アプリケーションがロックされます。

私はを使用してMicrosoft.Office.Interop.Wordいます。

 //MyWordApp & doc is initialized.

 MyWordApp.Application.Visible = true;

 While(WordIsOpen())//Holds execution here while User is editing in Word
 {
 }

WordIsOpenの定義:

 public bool WordIsOpen()
 {
       if (MyWordApp.Application.Visible)//Locks up here
       {
           return true;
       }
       else
           return false;
 }

閉じ込める:

 //I have a BeforeSave event that Saves the doc and quits Word

 DocumentBeforeSave(Doc, SaveAsUI, Cancel)
 {
      //Save Doc

      MyWordApp.Quit(ref objFalse, ref objNull, ref objNull);//Also, Locks up here
 }
4

1 に答える 1

1

最終的にこの問題を引き起こした原因は完全にはわかりません。COMの動作と関係があると判断しました。デバッグモードでWordInteropを使用しているときに、既知のバグがあります。この問題を解決できる可能性があると私が遭遇した唯一の方法は、保存前または保存時に発生するCOMイベントを傍受することです。私はそのソリューションを実装しなかったので、それに何が関係しているのかわかりません。

于 2012-08-10T15:51:55.860 に答える