在Visual Studio 6的宏中,我想运行一个外部程序,所以输入了:
shell("p4 open " + ActiveDocument.FullName)
这给了我一个类型不匹配的运行时错误。我最不得不输入的是:
Dim wshShell
Set wshShell = CreateObject("WScript.Shell")
strResult = wshShell.Run("p4 open " + ActiveDocument.FullName)
这里发生了什么?那废话真的是必要的还是我错过了什么?
答案 0 :(得分:1)
VBScript不是Visual Basic。
答案 1 :(得分:1)
正如lassevk指出的那样,VBScript不是Visual Basic。
我相信VBScript中唯一内置的对象是WScript对象。
WScript.Echo "Hello, World!"
来自文档
WScript对象是Windows脚本宿主的根对象 对象模型层次结构它永远不需要在调用它之前进行实例化 属性和方法,它始终可以从任何脚本文件中获得。
必须通过CreateObject调用创建其他所有内容。其中一些对象是listed here。
如果要在其上调用方法,则Shell对象是您需要创建的其他对象之一。
有一点需要注意,RegExp是内置的类型的,因为您可以在VBScript中实例化一个RegExp对象:
Dim r as New RegExp
答案 2 :(得分:0)
尝试一下:
Shell "p4 open" & ActiveDocument.FullName
答案 3 :(得分:-1)
VB6使用&连接字符串而不是+,并且你要确保文件名在空格的情况下用引号括起来。试试这样:
Shell "p4 open """ & ActiveDocument.FullName & """"