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?
Du musst angemeldet sein, um einen Kommentar abzugeben.
In der ersten code, erhalten Sie die Liste der geöffneten Dokumente in einem geöffneten Word-Instanz
im zweiten Teil des Codes, erstellen Sie ein neues Dokument mit einer Neue Instanz von Word
damit die Dateien nicht geöffnet werden können, aufgelistet und durch die zwei Instanzen von Word.
Wenn Sie wollen, dass die erste Methode in der Lage sein, um die Datei, Sie können versuchen, die Datei zu öffnen aus der aktuellen Instanz von Word: