C# Get-Liste der geöffneten Word-Dokumente

Derzeit bin ich mit diesem code, um die Liste von MS Word geöffneten Dokumente:

List<string> doc_list = new List<string>();
try
{
    Microsoft.Office.Interop.Word.Application WordObj;
    WordObj = (Microsoft.Office.Interop.Word.Application)System.Runtime.InteropServices.Marshal.GetActiveObject("Word.Application");
    for (int i = 0; i < WordObj.Windows.Count; i++)
    {
        object idx = i + 1;
        Window WinObj = WordObj.Windows.get_Item(ref idx);
        doc_list.Add(WinObj.Document.FullName);
    }
}
catch
{
    //No documents opened
}

Ist und es richtig funktioniert, wenn die Dokumente, die geöffnet wurden, "direkt", d.h. durch Doppelklick auf Sie.
Allerdings ist mir aufgefallen, dass wenn ich öffnen Sie ein MS-Word-Dokument direkt aus C# - code, wie:

Microsoft.Office.Interop.Word.Application word_app = new Microsoft.Office.Interop.Word.Application();

object inputFile = selected_doc;    //"selected_doc" contains the document name
object confirmConversions = false;
object readOnly = false;
object visible = true;
object missing = Type.Missing;

Document doc = word_app.Documents.Open(
    ref inputFile, ref confirmConversions, ref readOnly, ref missing,
    ref missing, ref missing, ref missing, ref missing,
    ref missing, ref missing, ref missing, ref visible,
    ref missing, ref missing, ref missing, ref missing);

jedes geöffnete Dokument auf diese Weise nicht gefunden wird, die von dem ersten code, aber ich brauche es zu erkennen.
Warum wird es nicht gefunden? Wie kann ich den code ändern, so dass das Dokument geöffnet von C# gefunden wird?

InformationsquelleAutor yuko | 2013-09-19
Schreibe einen Kommentar