WScript.Shell 与 Shell.Application 的不同
本文主要对比,VBScript 中 CreateObject("WScript.Shell") 和 CreateObject("Shell.Application") 之间,有什么不同。
代码上的不同:
代码如下:
'第一种方法
Set oShell = CreateObject("WScript.Shell")
oShell.Run "xxxx.exe"
'第二种方法
Set oShell = CreateObject("shell.application")
oShell..ShellExecute "xxxx.exe", "", "", "", 1
这里主要记录下,两种看似类似的方法,到底有什么不同:
- 首先它俩,来自于完全不同的两个对象(Object),或者说两个不同的 COM Object,也就是说来自于两个不同的 DLL 文件
- 第一种方法下,使用的 Object,源自于 wshom.ocx 文件
- Wscript.shell 是 Wshshell 的 ProID (Programmatic IDentifier)
- 而,这个 Wshshell 对象,则存放在 wshom.ocx 文件中
- 第二种方法下,使用的 Object,源自于 shell32.dll 文件
- 第一种方法下,使用的 Object,源自于 wshom.ocx 文件
- 再者,这两个不同 Object,是用不同的途径,去完成不同的任务
使用上的不同:
这里,就以打开Chrome浏览器的方法,为实例,来说明使用上的不同!
url = "www.google.com"
'第一种方法
set oShell = WScript.CreateObject("WScript.Shell")
oShell.run "chrome.exe"
WScript.sleep 1000
oShell.sendkeys url
WScript.sleep 1000
oShell.sendkeys "{ENTER}"
'第二种方法
Set oShell = CreateObject("shell.application")
oShell.ShellExecute "chrome", url,"","",1
'如果Chrome是默认浏览器的话
set oShell = CreateObject("WScript.Shell")
oShell.run url
所以,从这个实例中,可以看出 oShell.ShellExecute 方法,更加灵活。