Почему «shell» не работает в VBscript в VS6? - PullRequest
1 голос
/ 21 августа 2008

В макросе для Visual Studio 6 я хотел запустить внешнюю программу, поэтому набрал:

shell("p4 open " + ActiveDocument.FullName)

Который дал мне ошибку времени выполнения несоответствия типов. В итоге мне пришлось набрать вот что:

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

Что здесь происходит? Это глупость действительно необходима, или я что-то пропустил?

Ответы [ 4 ]

1 голос
/ 27 августа 2008

Как указано lassevk , VBScript не является Visual Basic.

Я считаю, что единственный встроенный объект в VBScript - это объект WScript.

WScript.Echo "Hello, World!"

Из документов

Объект WScript является корневым объектом Windows Script Host иерархия объектной модели. Его никогда не нужно создавать перед вызовом его свойства и методы, и он всегда доступен из любого файла скрипта.

Все остальное должно быть создано с помощью вызова CreateObject. Некоторые из этих объектов перечислены здесь .

Объект Shell является одним из других объектов, которые необходимо создать, если вы хотите вызывать методы для него.

Одно предостережение: RegExp является своего рода встроенным , так как вы можете создать экземпляр объекта RegExp, как в VBScript:

Dim r as New RegExp
1 голос
/ 21 августа 2008

VBScript не является Visual Basic.

0 голосов
/ 27 августа 2008

VB6 использует & для объединения строк, а не +, и вам нужно убедиться, что имя файла заключено в кавычки в случае пробелов. Попробуйте это так:

Shell "p4 open """ & ActiveDocument.FullName & """"
0 голосов
/ 21 августа 2008

Попробуйте:

Shell "p4 open" & ActiveDocument.FullName
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...