[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[已解决]VBS如何运行程序并返回进程ID?

vbs中,有没有什么函数能够运行程序并且同时返回进程ID?

因为可能要处理的进程重名,例如我运行一个qq但是如果有两个qq.exe,那么就不知道哪个才是刚刚运行的vbs的进程ID了

两次进程列表比对就算了


求助下

[ 本帖最后由 defanive 于 2009-6-13 19:08 编辑 ]
第三方命令行工具编程
Http://Hi.Baidu.Com/Console_App

  1. MsgBox CStr(CreateProcess("notepad"))
  2. Function CreateProcess(sPath)
  3. Dim oShell, oProcess
  4. Set oShell = CreateObject("WScript.Shell")
  5. Set oProcess = oShell.Exec(sPath)
  6. CreateProcess = oProcess.ProcessID
  7. Set oProcess = Nothing
  8. Set oShell = Nothing
  9. End Function
复制代码
1

评分人数

TOP

原来Exec方法返回的对象有这个属性捏。。。
汗一个,没仔细看的后果。。。
第三方命令行工具编程
Http://Hi.Baidu.Com/Console_App

TOP

这个是得到自己调用的。。。


WMI可以得到进程的

TOP

WMI的,发现比WScript的Exec好,都运行下cmd就知道了。
参考:
http://msdn.microsoft.com/en-us/library/aa389388(VS.85).aspx
  1. Dim iProcessID
  2. If CreateProcess2("cmd", iProcessID) Then MsgBox CStr(iProcessID)
  3. Function CreateProcess2(sPath, iProcessID)
  4. Dim oProcess, iReturn
  5. Set oProcess = GetObject("winmgmts:root\cimv2:Win32_Process")
  6. iReturn = oProcess.Create(sPath, Null, Null, iProcessID)
  7. Set oProcess = Nothing
  8. CreateProcess2 = iReturn = 0
  9. End Function
复制代码

TOP

返回列表