Pergunta

Em uma macro para Visual Studio 6, eu queria executar um programa externo, então digitei:

shell("p4 open " + ActiveDocument.FullName)

O que me deu um erro de tempo de execução de incompatibilidade de tipo.O que acabei tendo que digitar foi isso:

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

O que está acontecendo aqui?Esse absurdo é realmente necessário ou perdi alguma coisa?

Foi útil?

Solução

Como Lassevk apontou, VBScript não é Visual Basic.

Acredito que o único objeto integrado no VBScript é o objeto WScript.

WScript.Echo "Hello, World!"

Dos documentos

O objeto WScript é o objeto raiz da hierarquia do modelo de objeto de script do script do Windows.Ele nunca precisa ser instanciado antes de invocar suas propriedades e métodos, e está sempre disponível em qualquer arquivo de script.

Todo o resto deve ser criado através da chamada CreateObject.Alguns desses objetos são listado aqui.

O objeto Shell é um dos outro objetos que você precisa criar se quiser chamar métodos nele.

Uma ressalva é que RegExp é tipo de integrado, pois você pode instanciar um objeto RegExp como no VBScript:

Dim r as New RegExp

Outras dicas

VBScript não é Visual Basic.

Experimente:

Shell "p4 open" & ActiveDocument.FullName

O VB6 usa & para concatenar strings em vez de +, e você vai querer ter certeza de que o nome do arquivo está entre aspas no caso de espaços.Experimente assim:

Shell "p4 open """ & ActiveDocument.FullName & """"
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top