Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

sr.silva

Como chamar função VBScript no C#

Recommended Posts

Olá!!

 

Tenho um arquivo com várias funções em VBScript e preciso utiliza-las no meu projeto em C#,

 

É possível? Se sim, como?

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Um grande amigo me passou essa dica.

 

using System.Diagnostics;
Process p = new Process();

Porém preciso acessar uma determinada função, será que é possível?

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Process é para chamar um executável.

 

Eu ja vi alguem fazendo isso, lembro que você colocava numa string seu código vbscript, mandava o C# executar.

Veja se isso ajuda:

http://bytes.com/groups/net-c/237617-call-vbscript-c

É bem chato de ler esse site, mas talvez de alguma luz.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso mesmo! Porém não consigo executar a função.

 

Process processo = new Process();
		processo.StartInfo.FileName = @"c:\script.vbs";
		processo.StartInfo.Arguments = "Importar('aplicação autonoma')";
		processo.StartInfo.UseShellExecute = false;
		processo.Start();
		processo.WaitForExit();
		processo.Close();

A situação é a seguinte:

- Utilizando

processo.StartInfo.UseShellExecute = false;
Retorna um erro informando "Executável não é um aplicativo win32 válido"

 

- Utilizando

processo.StartInfo.UseShellExecute = true;
Não executa nada.

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, a classe Process é somente para executável (arquivo .exe).

Veja o link que te passei.

Compartilhar este post


Link para o post
Compartilhar em outros sites

hehe eu li!!

 

Seguinte, conversando com outras pessoas surgiram outras, digamos idéias..

 

- Transformar o arquivo VBS para TXT, jogando todas as linhas para uma variavel?

 

Exemplo em VB utilizando OCX (MSSCRIPT.OCX)

Private Sub cmdProcessar_Click()
   Dim strCode		 As String
   Dim strLinhaTexto   As String

	   With scpScript
		   .Reset
		   strCode = ""
		   'Lendo o Script para a memória
		   'Mudei o arquivo do script para .txt
		   Open "c:\script-alterado-para.txt" For Input As #1
		   strCode = ""
		   Do While Not EOF(1)
			   'Lendo todas as linhas do Script para dentro da variável
			   Line Input #1, strLinhaTexto
			   strCode = strCode & Trim$(strLinhaTexto) & vbCrLf
		   Loop
		   Close #1
		   .AddCode strCode
		   
		   .Run "Importar", 9999
						   'onde 9999 é o número do pedido que deverá ser processado.
		   .Reset
	   End With
   End Sub

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Engano meu, juro que li: hehe consegui.

Quando der um tempinho (no almoço) vou tentar isso, ai posto a solução.

Compartilhar este post


Link para o post
Compartilhar em outros sites

No problems :P

 

Seguinte, com o código abaixo consigo chamar a função:

Button1.Attributes.Add("OnClick", "Importar('mensagem')");

Sendo que no javascript é possível. Será que com VBS também é?

 

...resultado não consegui, talvez esteja fazendo errado.

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que eu estava pensando, não funciona.

Você pode chamar da mesma maneira que você fez com o javascript ai de cima, mas só vbscript só funciona no IE.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.