atg 10 Geschrieben 11. Juni 2007 Melden Geschrieben 11. Juni 2007 Hallo Zusammen Ich habe ein kleines Problem. In einem .vbs Script kreiere ich eine Application mit CreateObject( "EXCEL.Application" ). Nun möchte ich zu diesem Object die Windows-PID erhalten. Kann mir da jemand auf die Sprünge helfen wie ich das machen kann? In Excel habe ich keine Property gefunden im Application Object für den PID. Schon mal vielen Dank im Voraus für jeden Hinweis atg
blub 115 Geschrieben 11. Juni 2007 Melden Geschrieben 11. Juni 2007 mit wmi und win32_process geht das recht easy, z.B. wmic path win32_process where "caption like '%excel%'" get caption,processid /value cu blub
atg 10 Geschrieben 11. Juni 2007 Autor Melden Geschrieben 11. Juni 2007 Ja, diesen Weg habe ich mir auch schon überlegt, ist aber meines errachtens 'EDV zu Fuss'. Einerseits können ja noch weitere Excel Applikationen aktiv sein und somit weiss ich immer noch nicht welches meine Instanz ist. Sicher, ich kann mir die Prozess-Liste holen bevor ich das Object kreiere und danach und der zusätzliche Prozess muss dann meine Instanz sein. Eigentlich suche ich aber einen direkten Weg von der kreierten Object-Referenz zum PID. Das müsste doch auch möglich sein. Ciao atg
blub 115 Geschrieben 11. Juni 2007 Melden Geschrieben 11. Juni 2007 eine richtig elegante Lösung habe ich auch nicht, nur dieses demoskript aus - Aktuelle Angebote - Windows-Scripting mit WMI - Eine praxisorientierte Einführung monitorprocessevents.vbs strComputer = "." wmiNS = "\root\cimv2" objClass = "'Win32_Process'" StrMessage = "A new " & objClass & " was created at : " wmiQuery = "SELECT * FROM __InstanceCreationEvent " _ & "WITHIN 10 WHERE TargetInstance ISA " & objClass Set objWMIService = getObject("winmgmts:\\" & strComputer & wmiNS) Set colItems = objWMIService.ExecNotificationQuery(wmiQuery) Do Set objItem = colItems.NextEvent With objItem Wscript.Echo StrMessage & Now & vbcrlf & .TargetInstance.Name & vbtab & _ .TargetInstance.CommandLine & vbtab & "PID: " & .TargetInstance.ProcessId End with Loop das kannst du z.B. so anpassen, dass es dir die PID liefert, wenn ein Prozess mit der "Caption" Excel gestartet wird. Wenn nicht innerhalb sehr kurzer Zeit sehr viele Excels gestartet werden, müsste der Ansatz m.E. funktionieren cu blub
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden