Precisa de arquivo de lote para fechar uma janela .. NÃO a janela do lote

1

Complete o novato aqui, então, por favor, perdoe se a resposta for óbvia.

Eu tenho um arquivo em lotes que faz o seguinte.

Inicia o programa 1 Aguarda 3 segundos (eu tenho que clicar em um botão no programa 1 depois que ele abre) Então o programa 2 começa.

Meu problema é que o programa 1 precisa ser executado em segundo plano ... Nenhuma janela é necessária após os primeiros 3 segundos.

Normalmente, inicio o arquivo em lote, o programa 1 é iniciado. Clico no botão para iniciar um serviço.

Três segundos o segundo programa é iniciado.

Eu então tenho que voltar ao programa 1 e clicar no X no canto superior direito da janela para fechá-lo. Eu gostaria que o WINDOW no primeiro programa fechasse automaticamente após 3 segundos (mas o programa em si não pode ser eliminado).

Sugestões?

@echo off
start C:\Folder\To\MySystemManager.exe
TIMEOUT 3

start "" "C:\Program Files (x86)\CustomProgram\CustomProgram.exe"
exit
    
por batchKevin 31.12.2014 / 21:11

1 resposta

1

AFAIK que não é possível com lotes "puros" - você precisaria usar uma ferramenta de terceiros ou usar o powershell [ou alguma outra maneira de fazer referência à API do Win].

Se eu entendi corretamente e a janela que você quer fechar é uma espécie de painel de controle que redefine a mensagem Window close do que deveria funcionar (como executado a partir do cmd e assumindo que existe apenas uma instância do processo):

powershell (ps MySystemManager).CloseMainWindow()

Este comando age como se você tivesse clicado no botão 'fechar' ( X )

Eu testei com o painel de controle do xampp ( powershell (ps xampp-control).CloseMainWindow() ), sua milhagem pode variar

    
por 31.12.2014 / 23:23