Qual é a maneira correta de fechar / sair de programas da linha de comando, semelhante a pressionar o botão "X" no canto da janela?
Estou tentando fechar o chrome em 3 versões diferentes do windows: win7 ultimate, win7 home, winXP
Sob Ultimate e XP: TSKILL chrome
Em Casa TASKKILL /IM chrome.exe
TSKILL chrome
::
(Ele fecha o chrome, sem erros de cmd,
mas a restauração de erros do chrome ao reiniciá-lo)
TASKKILL /IM chrome.exe
:
(Ele fecha cromo, sem erros cromo quando relançá-lo,
mas erros no cmd: "impossíveis de encerrar processos filhos (cerca de 4-5) apenas pelo vigor com /F
")
I deve ignorar os erros criança cmd se no relançamento cromo me mostrar sem erros ?
windows
command-line
neoDev
fonte
fonte
Respostas:
A maneira correta de fechar / sair de um programa depende, em última análise, do software. No entanto, geralmente a melhor prática é fechar os programas do Windows sempre que receberem a mensagem WM_CLOSE. Liberando corretamente a memória e fechando alças. Existem outras mensagens que podem sinalizar o fechamento do aplicativo, mas cabe ao autor do software como cada mensagem é tratada.
O taskkill envia a mensagem WM_CLOSE e cabe ao aplicativo fechar corretamente. Você também pode usar a
/T
opção para sinalizar também processos filhos.Use a
/F
opção apenas se desejar forçar o término do processo.Outras opções incluem o envio das teclas Alt + F4, usando o PowerShell ou aplicativos de terceiros.
Atualizar para a pergunta atualizada
Ignore, os erros. O Chrome gera muitos processos. Os erros são causados quando um processo não reconhece a mensagem WM_CLOSE que TASKKILL envia. Somente processos com um loop de mensagem poderão receber a mensagem; portanto, os processos que não possuem um loop de mensagem gerarão esse erro. Muito provavelmente, esses processos são extensões e plugins do chrome.
Para ocultar os erros, capture a saída
Resumo: TASKKILL é a maneira correta, via linha de comando, de fechar aplicativos de acordo com sua implementação WM_CLOSE e o KB da Microsoft que vinculei .
fonte
>
é o operador de redirecionamento do cmd.exe enul
é o espaço vazio onde as coisas nunca mais serão ouvidas.Experimente o NirCmd (Download: x86 x64 )
Possui o comando "closeprocess", que é projetado para fechar processos normalmente. Conforme seu documento, ele não encerra os aplicativos, mas envia
WM_CLOSE
para todas as janelas de nível superior do processo de destino.exemplo de uso:
Se isso não funcionar, aposto que seu aplicativo tem um procedimento de limpeza incomum. Gostaria de ver o que acontece lá dentro, por favor, deixe-me saber qual é o seu aplicativo de destino.
fonte
A resposta para essa pergunta pode ser encontrada
here
( link da Microsoft ).Você pode enviar
WM_CLOSE
mensagens para qualquer janela que deseja fechar. Muitas janelas são manipuladasWM_CLOSE
para solicitar que o usuário salve documentos.Uma ferramenta que faz isso corretamente é
@Kill
. Veja também SendMsg .Não sei como fazer isso em lote, mas você pode usar o vbscript para isso. Simular as teclas Alt+ F4(equivale a sinalizar
WM_CLOSE
).Execute e observe o comportamento deste script abaixo.
Here
são os nomes das chaves da lista para as SendKeys.Quando você executa o script, o bloco de notas é aberto, algumas palavras são escritas e, em seguida, um sinal para fechar o programa é entregue, veja a figura abaixo.
Questões adicionais
Posso iniciar um programa minimizado ou em segundo plano com vbscript?
Sim. Use o seguinte código:
Para mais informações, consulte o
Run Method
.O chrome pode acessar algum URL no vbscript?
Se o chrome for o padrão, use:
Source
Existe uma maneira de focar em aplicativos específicos ( chrome.exe )?
Here
em um exemploQuero enviar alt + f4 SOMENTE para o chrome, independentemente do que estou fazendo com outras janelas.
O código a seguir funciona no Windows 8 .
fonte
Existem alguns utilitários de linha de comando que podem enviar uma
WM_SYSCOMMAND
mensagem adequada (comSC_CLOSE
o comando) para a janela de nível superior de um programa. Tenho certeza de que pelo menos um será mencionado em breve. (Então alguém mencionará o AutoIt. Em seguida, haverá uma resposta mostrando como fazer isso com o PowerShell eCloseMainWindow()
.)O utilitário de linha de comando que vem como um comando interno no TCC da JP Software , um interpretador de comandos e processador de scripts de comandos para Windows, é chamado
TASKEND
.fonte
Tudo bem, não vou mentir. Vi isso no stackoverflow e pensei que era uma pergunta desafiadora. Soooo, passei as últimas 2 horas escrevendo algum código. E aqui está ....
Após seguir as etapas abaixo, você pode digitar "TaskClose notepad.exe" após pressionar "Iniciar" e ele salvará automaticamente todos os arquivos de bloco de notas não documentados na área de trabalho. Ele fecha automaticamente o chrome.exe e salva as configurações de restauração.
Você pode adicionar e remover configurações adicionais para outros aplicativos nas condições if. Por exemplo:
Os arquivos vbs e batch executam os seguintes procedimentos:
ReturnAppList.bat: instale em "C: \ windows \ system32 \"
TaskClose.bat: instale em "C: \ windows \ system32 \" AND "C: \ Users \ YourUserName \"
TaskClose.vbs: instala em "C: \ windows \ system32 \"
Foi muito divertido escrever e estou mais feliz em terminá-lo do que realmente mostrar a resposta. Tenha uma ótima semana!
fonte