标题: [已解决]VBS如何运行程序并返回进程ID? [打印本页]
作者: defanive 时间: 2009-6-13 17:11 标题: [已解决]VBS如何运行程序并返回进程ID?
vbs中,有没有什么函数能够运行程序并且同时返回进程ID?
因为可能要处理的进程重名,例如我运行一个qq但是如果有两个qq.exe,那么就不知道哪个才是刚刚运行的vbs的进程ID了
两次进程列表比对就算了
求助下
[ 本帖最后由 defanive 于 2009-6-13 19:08 编辑 ]
作者: rat 时间: 2009-6-13 18:19
- MsgBox CStr(CreateProcess("notepad"))
-
-
-
- Function CreateProcess(sPath)
- Dim oShell, oProcess
- Set oShell = CreateObject("WScript.Shell")
- Set oProcess = oShell.Exec(sPath)
- CreateProcess = oProcess.ProcessID
- Set oProcess = Nothing
- Set oShell = Nothing
- End Function
复制代码
作者: defanive 时间: 2009-6-13 18:33
原来Exec方法返回的对象有这个属性捏。。。
汗一个,没仔细看的后果。。。
作者: slore 时间: 2009-6-13 18:39
这个是得到自己调用的。。。
WMI可以得到进程的
作者: rat 时间: 2009-6-13 22:50
WMI的,发现比WScript的Exec好,都运行下cmd就知道了。
参考:
http://msdn.microsoft.com/en-us/library/aa389388(VS.85).aspx- Dim iProcessID
- If CreateProcess2("cmd", iProcessID) Then MsgBox CStr(iProcessID)
-
-
-
- Function CreateProcess2(sPath, iProcessID)
- Dim oProcess, iReturn
- Set oProcess = GetObject("winmgmts:root\cimv2:Win32_Process")
- iReturn = oProcess.Create(sPath, Null, Null, iProcessID)
- Set oProcess = Nothing
- CreateProcess2 = iReturn = 0
- End Function
复制代码
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |