【发布时间】:2011-11-28 12:49:09
【问题描述】:
我正在使用以下代码 sn-p 来确定我的 vbscript 运行的进程 ID:
On Error Resume Next
Dim iMyPID : iMyPID = GetObject("winmgmts:root\cimv2").Get("Win32_Process.Handle='" & CreateObject("WScript.Shell").Exec("mshta.exe").ProcessID & "'").ParentProcessId
If Err.Number <> 0 Then Call Handle_Error(Err.Description)
On Error Goto 0
在我的 Windows 7(32 位)机器上,这大约有 90% 的时间可以工作,iMyPID 包含当前正在运行的脚本的进程 ID。但是,有 10% 的时间会调用 Handle_Error 并显示错误消息“SWbemServicesEX: Not found”。
最近运行 Windows 7(64 位)的其他人报告说,Handle_Error 总是被调用并显示错误消息“内存不足”。这似乎是一个疯狂的错误消息,只是为了找出您自己的进程 ID!
谁能推荐一个更好的方法?
【问题讨论】: