wie schließt man eine laufende Instanz von Word-Dokument? (C#)

Ich konnte sehen, eine Menge von sehr ähnlichen Themen, alle um Sie herum, aber nichts scheint mir eine Lösung, die sollte sehr basic.

Aus meiner winforms-Anwendung habe ich schließen müssen, dass eine ausgeführte Instanz von word-Dokument (geöffnet von der Anwendung selbst). Wenn ich öffnen Sie das word-Dokument aus der Anwendung habe ich immer eine Spur, die Sie in einer Liste. Nun, wie kann ich in der Nähe der gleichen doc?

Hier ist, was ich versucht habe:

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;
    }
}

Bekomme ich eine Menge von Methoden für das document-Objekt, sondern nur eine .Close() zu schließen, die Argumente wie diese: ref object SaveChanges, ref object OriginalFormat, ref object RouteDocument die ich auch nicht verstehen.

Was ist der ideale Weg? Danke..

Edit:

  1. Kann ich nicht schließen Sie die gesamte Word-Anwendung (WinWord) als Benutzer haben möglicherweise andere word-Dateien geöffnet.

  2. Muss ich nur beenden Sie die Instanz von word (so etwas wie Process.Kill()) ohne Eingabeaufforderung für den Benutzer zu speichern oder nicht, usw.

InformationsquelleAutor nawfal | 2011-09-16

Schreibe einen Kommentar