none
Configurando arquivo de lote em .vbs para abrir 2 programas RRS feed

  • 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.

    terça-feira, 7 de junho de 2011 23:28

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.

    Links: http://www.cruto.com/resources/vbscript/vbscript-examples/desktop/special/List-Items-in-the-Program-Files-Folder.asp 

     


    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
    quarta-feira, 8 de junho de 2011 02:45
    Moderador
  • 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
    quarta-feira, 8 de junho de 2011 16:31
    Moderador
  •  

    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
    quarta-feira, 8 de junho de 2011 16:53
    Moderador
  • 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:

    http://social.technet.microsoft.com/forums/en-US/winserverTS/thread/ef1d21aa-7c51-44b2-8e13-1fc0f08eff88/

     


    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
    quarta-feira, 8 de junho de 2011 19:05
    Moderador

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.

    Links: http://www.cruto.com/resources/vbscript/vbscript-examples/desktop/special/List-Items-in-the-Program-Files-Folder.asp 

     


    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
    quarta-feira, 8 de junho de 2011 02:45
    Moderador
  • 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

    quarta-feira, 8 de junho de 2011 16:15
  • 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
    quarta-feira, 8 de junho de 2011 16:31
    Moderador
  • Outra dúvida, no caso a máquina é 64 bits e o Dfrun.exe está instalado em 32 bits, eu gostaria de saber porque da erro quando modifico o "ProgramFiles" por "ProgramFiles(x86)".
    quarta-feira, 8 de junho de 2011 16:49
  •  

    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
    quarta-feira, 8 de junho de 2011 16:53
    Moderador
  • Observe , existe um espaço entre Program Files e (x86).

    Se der erro poste o erro aqui.


    Fábio de Paula Junior
    quarta-feira, 8 de junho de 2011 16:56
    Moderador
  • http://imageshack.us/photo/my-images/600/imageymt.jpg/
    quarta-feira, 8 de junho de 2011 17:18
  • Vá na pasta onde tem o arquivo que vc quer executar (c:\progra...) copie o caminho da barra do explorer e post aqui.
    Fábio de Paula Junior
    quarta-feira, 8 de junho de 2011 17:20
    Moderador
  • O caminho do Dfrun...C:\Program Files (x86)\VDF7\Bin\Dfrun.exe

    Os caminhos dos programas...D:\quadro\Programs\quadro.VD7 e D:\scc2000\Programs\lion.VD7

    quarta-feira, 8 de junho de 2011 17:22
  • Repare que no seu primeiro post o caminho está errado, está Bim ao invés de Bin

    Será que é isso?


    Fábio de Paula Junior
    quarta-feira, 8 de junho de 2011 17:24
    Moderador
  • Se continuar errado cole o script aqui também.
    Fábio de Paula Junior
    quarta-feira, 8 de junho de 2011 17:27
    Moderador
  • Mais estranho ainda...

    http://imageshack.us/photo/my-images/580/erroj.jpg/

    Agora que não entendo, quando abro o .vbs no servidor funciona mais quando acesso o servidor via TS não da certo.

    quarta-feira, 8 de junho de 2011 18:22
  • 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:

    http://social.technet.microsoft.com/forums/en-US/winserverTS/thread/ef1d21aa-7c51-44b2-8e13-1fc0f08eff88/

     


    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
    quarta-feira, 8 de junho de 2011 19:05
    Moderador
  • Muito obrigado mesmo, resolveu. Só pra finalizar eu preciso um comando que substituísse o comando do .dat:
    cd..
    change user /install
    Porque 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.

     

    quarta-feira, 8 de junho de 2011 22:14
  • Já tentou isto?

    wshShell.Run("change user /install")

    ou

    wshShell.Run("c:\Windows\System32\change.exe user /install")


    Fábio de Paula Junior
    quinta-feira, 9 de junho de 2011 11:53
    Moderador