Benutzer mit den meisten Antworten
Ermitteln der mit den laufenden (Office-) Anwendungen bearbeiteten Dokumente (VS Express 2012 Desktop, Win 10 - 64 Bit)

Frage
-
Moin.
Mit
For Each p As Process In Process.GetProcesses() If p.MainWindowTitle.Length > 0 Then ListBox1.Items.Add(p.MainWindowTitle & ": " & p.MainModule.FileName) End If Next
erhalte ich ja alle laufenden Prozesse, darunter sofern offen auch z. B. MS Word.
Nun interessiert mich nicht der Speicherort der Exe, sondern ich brauche den Speicherort des mit dieser Instanz bearbeiteten Dokuments, hier also .DOC oder so.
hoffe, dass ich mich verständlich ausgedrückt habe ;)
Gruß CG
Antworten
-
Hallo,
wenn es dir nur um Office (Speziell Excel, Word, PowerPoint) geht, dann ist vielleicht das hier interessant für dich:C# Get list of opened Word documents
Wenn du mit dem C# nicht klar kommst, dann findest du in meiner Signatur einen Konverter der das fast Fehlerfrei nach VB.NET übersetzen kann.
Grundsätzlich arbeitet der Code damit, dass über InterOp sämtliche Word-Instanzen abgerufen werden. Für InterOp musst du noch die Zusätzlichen Verweise für Office und dann noch für Word setzen. Das WinObj.Document.FullName (was auch der Fragesteller abgreift) ist soweit ich weiß der Pfad der Datei.
Viele Grüße, Tom Lambert - MVP, MCC und MSP
Wozu Antworten markieren und Posts bewerten? Klicke hier
Nützliche Links: .NET Quellcode | C#/VB.NET Konverter | GitHub Forum Samples | Account bestätigen (Verify Your Account)
Ich: Webseite | Facebook | Twitter | Code Snippets | GitHub- Als Antwort markiert Casi_G Samstag, 28. Januar 2017 16:04
Alle Antworten
-
Hallo,
wenn es dir nur um Office (Speziell Excel, Word, PowerPoint) geht, dann ist vielleicht das hier interessant für dich:C# Get list of opened Word documents
Wenn du mit dem C# nicht klar kommst, dann findest du in meiner Signatur einen Konverter der das fast Fehlerfrei nach VB.NET übersetzen kann.
Grundsätzlich arbeitet der Code damit, dass über InterOp sämtliche Word-Instanzen abgerufen werden. Für InterOp musst du noch die Zusätzlichen Verweise für Office und dann noch für Word setzen. Das WinObj.Document.FullName (was auch der Fragesteller abgreift) ist soweit ich weiß der Pfad der Datei.
Viele Grüße, Tom Lambert - MVP, MCC und MSP
Wozu Antworten markieren und Posts bewerten? Klicke hier
Nützliche Links: .NET Quellcode | C#/VB.NET Konverter | GitHub Forum Samples | Account bestätigen (Verify Your Account)
Ich: Webseite | Facebook | Twitter | Code Snippets | GitHub- Als Antwort markiert Casi_G Samstag, 28. Januar 2017 16:04
-
Hi Tom,
grundsätzlich wäre eine allumfassende Lösung schöner, die z. B. ein in GIMP bearbeitetes Bild identifiziert.
In der Mehrzahl der Fälle geht es aber tatsächlich um COM-Anwendungen und deren Datendateien. Und da könnte Dein Vorschlag ja helfen. Schau ich mir an und melde mich gegebenenfalls noch mal.
Erstmal schönen Dank
Gruß Casi
-
Hallo Casi,
einen wirklich all umfassenden Weg kenne ich nicht. Ich kann mir zwar vorstellen, dass man sich die Handles aller geöffneten Dateien per WinAPI erfragen kann und diesen dann irgendwie die Programme zuordnet, damit habe ich mich aber auch noch nicht beschäftigt.
Viele Grüße, Tom Lambert - MVP, MCC und MSP
Wozu Antworten markieren und Posts bewerten? Klicke hier
Nützliche Links: .NET Quellcode | C#/VB.NET Konverter | GitHub Forum Samples | Account bestätigen (Verify Your Account)
Ich: Webseite | Facebook | Twitter | Code Snippets | GitHub