Usuário com melhor resposta
Configurando arquivo de lote em .vbs para abrir 2 programas

Pergunta
-
Bem o problema é o seguinte preciso cria um arquivo de lote para que o usuário acessar o servidor via TS abra 2 programas SCC e QUADRO. Seguinte na linha de codigo .bat:
@echo off
"%Programsfiles%\VDF7\bim\Dfrun.exe" "D:\scc2000\Programs\lion.VD7"
funciona para abrir só um programa, então criei um em .vbs:
Dim wshShell
Set wshShell = CreateObject("WScript.Shell")
wshShell.Run("D:\quadro\Programs\quadro.VD7")
wshShell.Run("D:\SCC2000\Programs\lion.VD7")
Só que quando coloco o script para iniciar com a conexão remota de um usuário dá erro, por isso senti falta da linha "%Programsfiles%\VDF7\bim\Dfrun.exe" que funciona no .bat mais não consigo implementar no .vbs
Agradeço se poderem me ajudar.
Respostas
-
A forma da váriavel %programfiles% só funciona no .BAT em .VBS precisa encontrar o caminho do Arquivos de Programas.
'Encontra caminho do Arquivos de Programas Const PROGRAM_FILES = &H26& Set objShell = CreateObject("Shell.Application") Set objFolder = objShell.Namespace(PROGRAM_FILES) strProgramFile = objFolder.Self.path '----------------------------------------- Set wshShell = CreateObject("WScript.Shell") wshShell.Run("""" & strProgramFile & "\VDF7\bim\Dfrun.exe"" D:\quadro\Programs\quadro.VD7") wshShell.Run("""" & strProgramFile & "\VDF7\bim\Dfrun.exe"" D:\scc2000\Programs\lion.VD7")
Pontos importantes:
1- Encontrando o caminho do arquivos de programas nas quatro primeiras linhas - é bom fazer isso pois deixa seu script preparado para rodar em qualquer idioma do windows.
2- aspas duplas na formação da string com o nome do executável (parametro do .run), como o caminho do .exe tem espaço (Arquivos de Programas) tive que colocar entre " mas como " também é o limitador de string do .vbs então têm que utilizar aspas duplas para que ela entre na concatenção da string.
Fábio de Paula Junior- Sugerido como Resposta Fábio JrModerator quarta-feira, 8 de junho de 2011 02:45
- Marcado como Resposta Rafael_SM quarta-feira, 8 de junho de 2011 22:28
-
Antes da linha onde ocorre o erro coloque esta linha
wscript.echo ("""" & strProgramFiles & "\VDF7\bim\Dfrun.exe"" D:\quadro\Programs\quadro.VD7")
Espero que a saida seja algo parecido com
"C:\Arquivos de Programas\VDF7\bim\Dfrun.exe" D:\quadro\Programs\quadro.VD7
Veja se o caminho que ele imprime existe, vc pode copia-la e rodar no Iniciar>Executar
Fábio de Paula Junior- Marcado como Resposta Rafael_SM quarta-feira, 8 de junho de 2011 22:29
-
O script retorna como Program files a pasta c:\Program Files (ou C:\Arquivos de Programas)
Se seu programa está na C:\Arquivos de Programas (x86) então faça a seguinte alteração:
wschshell.run ("""" & strProgramFiles & " (x86)\VDF7\bim\Dfrun.exe"" D:\quadro\Programs\quadro.VD7")
Simplificando: dentro do parametro do .run tem que ter uma string que abra o programa da forma que vc quer caso vc a utilize no Iniciar > Executar.
Fábio de Paula Junior- Editado Fábio JrModerator quarta-feira, 8 de junho de 2011 16:55 Obs.
- Marcado como Resposta Rafael_SM quarta-feira, 8 de junho de 2011 22:28
-
Agora já não é problema de Script, agora é TS.
Veja se onde vc chama o script funciona se vc colocar assim:
Wscript "d:\scc2000\Programs\scc_quadro.vbs"
Fonte:
Fábio de Paula Junior- Sugerido como Resposta Fábio JrModerator quarta-feira, 8 de junho de 2011 19:56
- Marcado como Resposta Rafael_SM quarta-feira, 8 de junho de 2011 22:28
Todas as Respostas
-
A forma da váriavel %programfiles% só funciona no .BAT em .VBS precisa encontrar o caminho do Arquivos de Programas.
'Encontra caminho do Arquivos de Programas Const PROGRAM_FILES = &H26& Set objShell = CreateObject("Shell.Application") Set objFolder = objShell.Namespace(PROGRAM_FILES) strProgramFile = objFolder.Self.path '----------------------------------------- Set wshShell = CreateObject("WScript.Shell") wshShell.Run("""" & strProgramFile & "\VDF7\bim\Dfrun.exe"" D:\quadro\Programs\quadro.VD7") wshShell.Run("""" & strProgramFile & "\VDF7\bim\Dfrun.exe"" D:\scc2000\Programs\lion.VD7")
Pontos importantes:
1- Encontrando o caminho do arquivos de programas nas quatro primeiras linhas - é bom fazer isso pois deixa seu script preparado para rodar em qualquer idioma do windows.
2- aspas duplas na formação da string com o nome do executável (parametro do .run), como o caminho do .exe tem espaço (Arquivos de Programas) tive que colocar entre " mas como " também é o limitador de string do .vbs então têm que utilizar aspas duplas para que ela entre na concatenção da string.
Fábio de Paula Junior- Sugerido como Resposta Fábio JrModerator quarta-feira, 8 de junho de 2011 02:45
- Marcado como Resposta Rafael_SM quarta-feira, 8 de junho de 2011 22:28
-
Fábio, não sei se estou fazendo algo errado mais ele dá o seguinte erro: "O sistema não pode encontrar o arquivo especificado" na linha:
wshShell.Run("""" & strProgramFiles & "\VDF7\bim\Dfrun.exe"" D:\quadro\Programs\quadro.VD7")
caractere 2
-
Antes da linha onde ocorre o erro coloque esta linha
wscript.echo ("""" & strProgramFiles & "\VDF7\bim\Dfrun.exe"" D:\quadro\Programs\quadro.VD7")
Espero que a saida seja algo parecido com
"C:\Arquivos de Programas\VDF7\bim\Dfrun.exe" D:\quadro\Programs\quadro.VD7
Veja se o caminho que ele imprime existe, vc pode copia-la e rodar no Iniciar>Executar
Fábio de Paula Junior- Marcado como Resposta Rafael_SM quarta-feira, 8 de junho de 2011 22:29
-
-
O script retorna como Program files a pasta c:\Program Files (ou C:\Arquivos de Programas)
Se seu programa está na C:\Arquivos de Programas (x86) então faça a seguinte alteração:
wschshell.run ("""" & strProgramFiles & " (x86)\VDF7\bim\Dfrun.exe"" D:\quadro\Programs\quadro.VD7")
Simplificando: dentro do parametro do .run tem que ter uma string que abra o programa da forma que vc quer caso vc a utilize no Iniciar > Executar.
Fábio de Paula Junior- Editado Fábio JrModerator quarta-feira, 8 de junho de 2011 16:55 Obs.
- Marcado como Resposta Rafael_SM quarta-feira, 8 de junho de 2011 22:28
-
-
-
-
-
-
Se continuar errado cole o script aqui também.
Fábio de Paula Junior- Sugerido como Resposta Fábio JrModerator quarta-feira, 8 de junho de 2011 20:10
-
-
Agora já não é problema de Script, agora é TS.
Veja se onde vc chama o script funciona se vc colocar assim:
Wscript "d:\scc2000\Programs\scc_quadro.vbs"
Fonte:
Fábio de Paula Junior- Sugerido como Resposta Fábio JrModerator quarta-feira, 8 de junho de 2011 19:56
- Marcado como Resposta Rafael_SM quarta-feira, 8 de junho de 2011 22:28
-
Muito obrigado mesmo, resolveu. Só pra finalizar eu preciso um comando que substituísse o comando do .dat:cd..change user /installPorque originalmento o .bat era assim:cd..change user /install@echo off"%Programsfiles%\VDF7\bim\Dfrun.exe" "D:\scc2000\Programs\lion.VD7"Já me ajudou demais, se puder dar só mais essa dica fica perfeito.
-