非常によく似たスレッドがいたるところにたくさん見られましたが、非常に基本的な解決策を提供してくれるものは何もないようです。
私の winforms アプリケーションから、(アプリケーション自体から開かれた) Word ドキュメントの実行中のインスタンスを閉じる必要があります。アプリケーションからワード文書を開くと、それをリストで追跡します。どうすれば同じドキュメントを閉じることができますか?
これが私が試したものです:
private bool CloseWord(string osPath) //here I pass the fully qualified path of the file
{
try
{
Word.Application app = (Word.Application)Marshal.GetActiveObject("Word.Application");
if (app == null)
return true;
foreach (Word.Document d in app.Documents)
{
if (d.FullName.ToLower() == osPath.ToLower())
{
d.What? //How to close here?
return true;
}
}
return true;
}
catch
{
return true;
}
}
.Close()
ドキュメントオブジェクトのメソッドはたくさんありますが、次のような引数を持つ to closeだけref object SaveChanges, ref object OriginalFormat, ref object RouteDocument
です。これは理解できません。
理想のやり方とは?ありがとう..
編集:
ユーザーが他の Word ファイルを開いている可能性があるため、Word アプリケーション (WinWord) 全体を閉じることができません。
Process.Kill()
ユーザーに保存するかどうかなどのプロンプトを表示せずに、インスタンスという単語(のようなもの)を終了する必要があります。