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

这里主要记录下,两种看似类似的方法,到底有什么不同:

  1. 首先它俩,来自于完全不同的两个对象(Object),或者说两个不同的 COM Object,也就是说来自于两个不同的 DLL 文件

    1. 第一种方法下,使用的 Object,源自于 wshom.ocx 文件

      1. Wscript.shell 是 Wshshell 的 ProID (Programmatic IDentifier)
      2. 而,这个 Wshshell 对象,则存放在 wshom.ocx 文件中

    2. 第二种方法下,使用的 Object,源自于 shell32.dll 文件

  2. 再者,这两个不同 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 方法,更加灵活。


参考阅读:

  1. wshom.ocx_百度百科
  2. WScript.Shell vs Shell.Application
  3. Diff between wscript.shell and shell.application
  4. Shell.ShellExecute method | Microsoft Docs
  5. shell32.dll Windows process - What is it?
  6. Opening browser on a variable page using vbscript - Stack Overflow




以上是 WScript.Shell与Shell.Application的不同 的全部内容, 来源链接: utcz.com/z/514863.html

回到顶部