Como matar um programa no Windows XP através do Java?
7 respostas
cardosodario
Tenho que escrever um programa em Java que a cada determinado tempo ele mate um programa que esta rodando no Windows XP, tipo por exemplo o notepad.exe
A cada 5 minutos ele tem que matar o notepad.exe
No linux é só dar um killall -9 notepad.exe mas no Windows XP eu não sei como fazer
Falando em killall, experimentem um dia o killall5 quando não tiverem o que fazer… hehe
KWill
A sugestão do ViniGodoy depende de se ter o aplicativo “taskkill” no Windows XP, o que nem sempre é garantido, pois tive uma vez que fazer uma solução que conseguisse criar e finalizar processos, e tive que corrigir a dependência do “taskkill” pois ele não vinha no Windows XP Home. Vou procurar aqui o que foi que fiz para contornar o problema e já posto algo.
Inté.
KWill
Lembrei, eu chamava no VB a função TerminateProcess da api kernel32, passando um handler do processo que eu queria destruir. Conseguir fazer algo assim em Java talvez seja uma coisa trabalhosa…
Inté.
T
thingol
É porque você precisa listar os processos. O jeito mais imbecil é ter um programa bem pequeninho, escrito em C ou alguma outra linguagem compilada, e incluí-lo como “resource” no seu programa Java. Se for necessário executar a tal coisa, simplesmente basta extrair o arquivo a partir do JAR de seu programa, e executá-lo (isso se o antivírus deixar).
KWill
thingol:
É porque você precisa listar os processos. O jeito mais imbecil é ter um programa bem pequeninho, escrito em C ou alguma outra linguagem compilada, e incluí-lo como “resource” no seu programa Java. Se for necessário executar a tal coisa, simplesmente basta extrair o arquivo a partir do JAR de seu programa, e executá-lo (isso se o antivírus deixar).
Boa, verdade, pode ser uma boa colocar o próprio programinha “taskkill” como “resource” no jar e executar quando preciso.
Inté.
Bruno_Leao
para garantir a finalização no windows xp:
*No caso o /t não é necessário pq o notepad não tem arvore de processo…
o /f força a finalizaçao…