1

在 Visual Studio 6 的宏中,我想运行一个外部程序,所以我输入:

shell("p4 open " + ActiveDocument.FullName)

这给了我一个类型不匹配的运行时错误。我最终不得不输入的是:

Dim wshShell
Set wshShell = CreateObject("WScript.Shell")
strResult = wshShell.Run("p4 open " + ActiveDocument.FullName)

这里发生了什么?这种废话真的有必要还是我错过了什么?

4

4 回答 4

1

VBScript 不是 Visual Basic。

于 2008-08-21T15:47:39.180 回答
1

正如lassevk 所指出的,VBScript 不是 Visual Basic。

我相信 VBScript 中唯一的内置对象是 WScript 对象。

WScript.Echo "Hello, World!"

从文档

WScript 对象是 Windows 脚本宿主对象模型层次结构的根对象。在调用它的属性和方法之前,它永远不需要被实例化,并且它总是可以从任何脚本文件中获得。

其他一切都必须通过 CreateObject 调用来创建。此处列出了其中一些对象。

如果要在其上调用方法, Shell 对象是您需要创建的其他对象之一。

需要注意的是,RegExp 是一种内置的,因为您可以像在 VBScript 中那样实例化 RegExp 对象:

Dim r as New RegExp
于 2008-08-26T21:57:10.593 回答
0

试试这个:

Shell "p4 open" & ActiveDocument.FullName
于 2008-08-21T16:02:04.510 回答
-1

VB6 使用 & 来连接字符串而不是 +,并且您需要确保文件名包含在引号中以防出现空格。试试这样:

Shell "p4 open """ & ActiveDocument.FullName & """"
于 2008-08-26T22:26:29.367 回答