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
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.
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…
É 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).
[quote=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).
[/quote]
Boa, verdade, pode ser uma boa colocar o próprio programinha “taskkill” como “resource” no jar e executar quando preciso.