No Windows, como posso pedir gentilmente que um programa em execução termine?

12

No Unix ou Linux, é fácil pedir que um aplicativo em execução termine: você envia o sinal SIGTERM. Se o seu ID de processo for 1234, você pode simplesmente executar kill 1234 ou kill -s TERM 1234 ou kill -15 1234 .

Como posso fazer a mesma coisa no Windows?

Se bem me lembro, o recurso "Finalizar tarefa" do Gerenciador de tarefas (não seu recurso "Finalizar processo") costumava fazer o que eu queria. Mas, a partir do Windows 8.1, não é mais tão gentil; quando eu uso o recurso, isso me faz perder dados não salvos.

Eu não quero escrever nenhum código para fazer isso. Se eu fizesse, eu perguntaria no Stack Overflow. :)

    
por unforgettableid 19.08.2015 / 04:09

2 respostas

14

taskkill.exe

Andy E escreve que você pode usar taskkill.exe .

Para finalizar o processo com o ID do processo 1234:

taskkill /pid 1234

Para finalizar o notepad.exe:

taskkill /im notepad.exe

Para mais ajuda:

taskkill /?

Ele acrescenta:

The /f switch would force the kill, but not using it just sends the termination signal so the application closes gracefully.

Ele está certo. Eu tentei usar taskkill.exe (sem /f ) para finalizar o bloco de notas e funcionou como esperado. O bloco de notas perguntou se eu queria ou não salvar o texto não salvo que eu havia inserido.

Estou usando a versão inicial do Windows 8.1. Parece que taskkill.exe foi incluído no Windows sem nenhum custo extra. Está em c:\windows\system32 .

Ou faça logout

Se você não quiser se incomodar com nada disso, simplesmente faça o logout da sua conta de usuário do Windows e, em seguida, faça login novamente.

Aplicativos do console

Com relação aos aplicativos de console (por exemplo, PowerShell), Chris Becke adiciona :

There is no real way to close console applications gracefully on Windows. They need to support some kind of graceful close mechanism.

    
por 01.09.2017 / 18:48
3

Você pode usar rmlogotest.exe (a Ferramenta de teste de logotipo do Restart Manager). Este utilitário freeware, escrito pela Microsoft, faz parte do Windows App Certification Kit.

Para obter a versão mais recente do Windows App Certification Kit, baixe e execute o instalador do Windows SDK. (Você pode encontrar o instalador mais recente do Windows SDK fazendo uma pesquisa no Google.) Desmarque todas as caixas, exceto a caixa do Kit de Certificação de Aplicativos do Windows. Aguarde o download e a instalação do kit. Se bem me lembro, o kit tem algumas centenas de megabytes.

rmlogotest.exe provavelmente estará em C:\Program Files (x86)\Windows Kits\App Certification Kit se você estiver usando a versão 10 do Windows SDK.

Abra um prompt de comando. Mude para o diretório correto. Digite rmlogotest , em seguida, um espaço e, em seguida, o número de identificação do processo do processo.

Se o processo for "Reinicializando o Gerenciador ciente", rmlogotest irá reiniciá-lo e informar "Validação do logotipo aprovada". Caso contrário, rmlogotest solicitará que ele seja encerrado normalmente e, em seguida, poderá dizer "Falha de validação do logotipo".

Eu tentei usar rmlogotest.exe para finalizar o Bloco de Notas e ele funcionou conforme o esperado. O bloco de notas perguntou se eu queria ou não salvar o texto não salvo que eu havia inserido.

(Caso você queira saber o que o Restart Manager é e faz, deixe-me explicar. O Restart Manager faz parte do Windows e é usado pelo Windows Installer 4.0 ou superior. Quando o Windows Installer precisa sobrescrever ou excluir um arquivo aberto, ele usa um processo de três etapas. Ele instrui o Restart Manager a finalizar com graça o processo que está usando o arquivo. Ele sobrescreve o arquivo. Em seguida, ele informa ao Restart Manager para iniciar o processo novamente.)

    
por 07.12.2016 / 19:18