Matar um processo pelo console

Já aconteceu alguma vez de você ficar sem saber o que fazer quando uma aplicação feita em seu Delphi não deixa abrir o gerenciador de tarefas? Alguma vez você precisou encerrar algum programa aberto através de sua aplicação? Este exemplo permite matar um processo via linha de comando no Windows à là Linux.

O modo de fazer isso é extremamente simples. O primeiro passo é pegar o ID ou o nome do processo que queremos exterminar. Abra o “Prompt de Comando” (Menu Iniciar > Programas > Acessórios > Prompt de Comando) e digite:

TASKLIST.EXE
Deve aparecer algo do tipo:

Nome da imagem            Identi Nome da sessão    Sessão# Uso de memór
========================= ====== ================ ======== ============
System Idle Process            0 Console                 0         16 K
System                         4 Console                 0        220 K
smss.exe                     676 Console                 0        392 K
csrss.exe                    724 Console                 0      4.648 K
winlogon.exe                 748 Console                 0      7.928 K
services.exe                 792 Console                 0      3.472 K
lsass.exe                    804 Console                 0      1.560 K
svchost.exe                 1016 Console                 0      5.336 K
svchost.exe                 1088 Console                 0      4.800 K
svchost.exe                 1300 Console                 0      3.904 K
svchost.exe                 1396 Console                 0      4.344 K
spoolsv.exe                 1508 Console                 0      6.000 K
svchost.exe                 1696 Console                 0      3.712 K
explorer.exe                1360 Console                 0     31.320 K
ctfmon.exe                  2368 Console                 0      3.992 K
cmd.exe                     3284 Console                 0      2.664 K
wmiprvse.exe                3468 Console                 0      5.784 K
project1.exe                2260 Usuario                 0     10.758 K

Podemos ver que o project1.exe está instanciado com o ID 2260, então usaremos este ID para saber quem matar:

C:\>TASKKILL.EXE /PID 2260
ÊXITO: o processo com PID 2260 foi encerrado.

Ainda é possível utilizar o nome do processo para efetuar a “matança”.

C:\>TASKKILL.EXE /IM project1.exe
ÊXITO: o processo com PID 2260 foi encerrado.

Conclusão
Os métodos aqui utilizados enviam uma mensagem do tipo WM_CLOSE para a aplicação, ou sela, ela solicita “educadamente” que a mesma se feche. Para ser um pouco mais ignorantes, podemos utilizar a opção /F ao comando, que termina o processo independentemente se ele estiver executando alguma rotina ou não. Para mais informações, digite TASKKILL.EXE /? em seu Prompt de Comando para obter a lista completa de parâmetros.