obtenha seu script para iniciar o programa usando:
start /wait application.exe
o parâmetro / wait esperará que ele termine, então prossiga com:
net stop service
Eu tenho alguns aplicativos como o VMWare, SQL Server, que têm muitos serviços iniciados mesmo sem eu usar o software. Eu mudei a inicialização desses serviços para manual e criei um arquivo .bat
para iniciar os serviços e depois eu iniciei o programa.
Mas, não é uma solução eficiente. Gostaria de iniciar os serviços assim que o aplicativo for iniciado e parar assim que o aplicativo fechar também.
Alguém sabe de alguma solução?
No arquivo .bat, você pode:
1) inicie os serviços necessários
2) execute um programa específico e aguarde a conclusão
3) pare os serviços que foram iniciados em 1)
Você pode ir além - tenha o (s) programa (s) executável (s) como parâmetro (s) para o arquivo .bat no caso de vários programas precisarem de serviços semelhantes ou iguais.
Para ser honesto, não vejo como você terá seu arquivo em lote parando seus serviços automaticamente, a menos que o programa permita executar comandos no fechamento, o que não é comum.
Se o arquivo de lote for executado e permanecer aberto em segundo plano, ele poderá sair quando você sair do programa, mas você realmente deseja que uma caixa de comando seja aberta o tempo todo enquanto usa seu programa e espere que você termine usando isto? Isso me deixaria louco.
Eu usaria seu arquivo de lote para iniciar os serviços, depois inicie o programa e não se preocupe com a interrupção dos serviços até que a reinicialização faça isso para você ou crie um arquivo de lote separado para interromper os serviços, se você realmente quiser. Aqui está o arquivo de lote de amostra para começar:
net start ServiceName net start Service_Name "C: \ Arquivos de Programas \ Microsoft Office \ Office14 \ winword.exe"
Você pode encontrar os nomes reais dos serviços necessários para iniciar / parar a rede aqui:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services
Muitos aplicativos podem iniciar o serviço necessário se ainda não estiverem em execução na execução do programa. Mas o maior problema é que iniciar / interromper serviços requer permissões de administrador. Portanto, se o aplicativo não for um dos que você inicia como administrador, isso não funcionará.
Mas há uma pequena ferramenta de linha de comando disponível que permite que usuários regulares tenham permissão para iniciar e / ou interromper determinados serviços:
SCAcl.exe link