Laden...

IMoniker und Prozess ID

Erstellt von lukasS vor 9 Jahren Letzter Beitrag vor 9 Jahren 1.582 Views
lukasS Themenstarter:in
65 Beiträge seit 2009
vor 9 Jahren
IMoniker und Prozess ID

Hallo zusammen,

wenn ich mein Programm starte, soll eine Liste von z. B. geöffneten Excel-Dateien angezeigt werden. Wählt der Benutzer eine Datei aus, muss ich die Prozess-ID der jeweiligen Instanz kriegen. Dabei kann natürlich vorkommen das mehrere Excel-Instanzen auf dem Rechner laufen.

Über die laufenden Prozesse kriege ich ja die Prozess-ID.
Auf die aktuell geöffneten Dateien komme ich über die GetRunningObjectTable (hier ein schönes Bespiel: Laufende COM-Objekte abfragen).

Aber ich habe keinen Bezug von der Prozess-ID zu dem ausgewählten Objekt. Der IMoniker bietet ja z. B. keine Informationen dazu an.

Gibt es vielleicht eine Funktion, ID oder sonst was, wo ich einen Bezug zwischen dem z. B. IMoniker/ROT-Objekt und einem Prozess kriege, irgendwas was ich vielleicht abgleichen kann?
Oder gibt es noch eine Funktion wie GetRunningObjectTable nur bezogen auf die Prozesse? Die ID muss ich nämlich haben.

Danke schon mal!

Gruß

Lukas

I
45 Beiträge seit 2012
vor 9 Jahren

Gibt es in den Informationen über die geöffneten Dateien so etwas wie "Besitzer" ?
Das könntre dann der öffnende Prozess sein.

49.485 Beiträge seit 2005
vor 9 Jahren

Hallo lukasS,

der Process Explorer kennt die Zuordnung von offenen Dateien zu Prozessen. Der Process Hacker kann angeblich mehr als der Process Explorer, also müsste er es auch können. Und der Process Hacker ist open source. Du kannst also nachschauen, wie er es macht.

herbivore

lukasS Themenstarter:in
65 Beiträge seit 2009
vor 9 Jahren

Hallo,

@ismirschlecht: Über die Dateien habe ich halt die Informationen die man auch sonst erhält, aber keine Verbindung zum geöffneten Prozess.

@herbivore: Danke für den Tipp, das könnte Hilfreich sein. Der Dateipfad steht dort zumindest drin. Wenn ich was finden sollte, schreibe ich es hier rein.

Danke!

Lukas

C
1.214 Beiträge seit 2006
vor 9 Jahren

Hast du das Excel.Application Objekt oder kommst du irgendwie ran? Dann könntest du dir das Fenster holen und den dazugehörigen Prozess.
Was für IMoniker hast du genau an der Hand?