我正在尝试获取使用winmgmts create方法和processID属性创建的进程的进程ID。但是看起来它让我得到了错误的进程ID。你能帮忙吗?
注意:当计算机上已经运行iexplore.exe时,就会发生这种情况。如果是新启动的,它将获得正确的进程ID。
Set objWMIService = GetObject("winmgmts:" & "impersonationLevel=impersonate}!\\.\root\cimv2")
Set objStartup = objWMIService.Get("Win32_ProcessStartup")
Set objConfig = objStartup.SpawnInstance_
objConfig.ShowWindow = 1 'SW_NORMAL
Set objProcess = objWMIService.Get("Win32_Process")
intReturn = objProcess.Create("C:\program files\internet
explorer\iexplore.exe", Null, objConfig, intProcessID)
Set objWMIService = GetObject("winmgmts:\\.\root\CIMV2")
query = "SELECT ProcessId FROM Win32_Process WHERE ProcessId='" &
intProcessID & "'"
Set colItems = objWMIService.ExecQuery(query, , wmi_flags)
For Each objItem In colItems
intProcessID = objItem.ProcessID
Next
但是我在intProcessID中获得的进程ID与在任务管理器中看到的不同,并且该进程似乎已经终止。有没有办法为IE获取正确的进程ID?这会产生一些子进程并终止吗?你能帮忙吗?
关于, 加内什。