为什么“shell”在 VS6 的 VBscript 中不起作用?
-
09-06-2019 - |
题
在 Visual Studio 6 的宏中,我想运行外部程序,所以我输入:
shell("p4 open " + ActiveDocument.FullName)
这给了我一个类型不匹配的运行时错误。我最终不得不输入的是:
Dim wshShell
Set wshShell = CreateObject("WScript.Shell")
strResult = wshShell.Run("p4 open " + ActiveDocument.FullName)
这里发生了什么?这些废话真的有必要吗还是我错过了什么?
解决方案
作为 拉塞夫克 指出,VBScript 不是 Visual Basic。
我相信 VBScript 中唯一内置的对象是 WScript 对象。
WScript.Echo "Hello, World!"
来自文档
WSCRIPT对象是Windows脚本主机对象模型层次结构的根对象。在调用其属性和方法之前,永远不需要实例化,并且始终可以从任何脚本文件中获得。
其他所有内容都必须通过 CreateObject 调用创建。其中一些对象是 此处列出.
Shell 对象是其中之一 其他 如果你想调用它的方法,你需要创建的对象。
需要注意的是,RegExp 是 有点 内置,您可以像 VBScript 中那样实例化 RegExp 对象:
Dim r as New RegExp
其他提示
VBScript 不是 Visual Basic。
尝试一下:
Shell "p4 open" & ActiveDocument.FullName
VB6 使用 & 来连接字符串而不是 +,并且您需要确保文件名包含在引号中以防出现空格。试试这样:
Shell "p4 open """ & ActiveDocument.FullName & """"
不隶属于 StackOverflow