Jump to content
Sign in to follow this  
atg

PID für COM-Object?

Recommended Posts

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte überlege Dir, ob es nicht sinnvoller ist ein neues Thema zu erstellen.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

Werbepartner:



×
×
  • Create New...