Programa não iniciado a partir da chave de execução do registro

1

Eu tenho um programa que eu instalo usando um script NSIS. A etapa final no instalador é gravar na chave Run do registro e fazer com que o programa seja executado na inicialização. Eu confirmei que sob

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run 

existe a chave

MyCompany Program - C:\MyCompany\Program\launch.vbs

Eu tentei a chave com e sem aspas, mas não houve impacto. Eu confirmei que o registro está lendo de CurrentVersion \ Run adicionando

Notepad - C:\windows\notepad.exe

e o Notepad agora é iniciado na inicialização. O script launch.vbs é um liner para iniciar um script sem a janela cmd.exe:

'HideBat.vbs from https://superuser.com/questions/140047/how-to-run-a-batch-file-without-launching-a-command-window
CreateObject("Wscript.Shell").Run "cmd /c " & chr(34) & "C:\MyCompany\Program\run.cmd " & chr(34), 0, True

Eu confirmei que chamar launch.vbs de uma janela do explorador ou do cmd.exe funciona como esperado (inicializando meu programa). msconfig confirma que C: \ MyCompany \ Programme \ launch.vbs está listado na guia de inicialização. A guia de segurança de Propriedades do arquivo indica que todos os usuários devem ter lido & executar privilégios. Ditto o run.cmd realmente sendo chamado.

Neste ponto, estou perdido porque meu programa não está sendo lançado e não consigo descobrir uma maneira eficiente de depurá-lo.

O sistema é o Windows 7 Professional de 64 bits.

    
por guest 10.03.2015 / 21:16

1 resposta

1

Com a ajuda do LPChip, iniciei a depuração do messagebox e confirmei que o script estava sendo lançado, mas com erro. Eu atualizei o launch.vbs para

CreateObject("Wscript.Shell").Run "cmd /k " & chr(34) & "C:\MyCompany\Program\run.cmd " & chr(34), 1, True

(observe o / k para manter a janela ativa e 1 para mostrar). A partir daí, ficou claro que o java não está definido no caminho de classe para scripts iniciados via CurrentVersion \ Run. Codificando o caminho para java (que nossos clientes serão forçados a usar de qualquer maneira) em run.cmd resolveu o problema.

    
por 10.03.2015 / 23:01