WScript.Shell 与 Shell.Application 的不同
程序员文章站
2022-07-02 11:08:43
本文主要对比,VBScript 中 CreateObject("WScript.Shell") 和 CreateObject("Shell.Application") 之间,有什么不同。 代码上的不同: 代码如下: 这里主要记录下,两种看似类似的方法,到底有什么不同: 1. 首先它俩,来自于完全不同 ......
本文主要对比,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 方法,更加灵活。