Tasklist nao funciona

Pessoal é o seguinte estou tentando executar o codigo abaixo que peguei do topico http://www.guj.com.br/java/236153-testar-processos-que-estao-ativos-no-windows porem o que acontece é o seguinte… meu windows nao roda o tasklist… a nao ser que executo o “tasklist” dentro da pasta “cd \windows\system32\wbem” ai sim funciona normal…

a pergunta é… existe alguma forma de executar o tasklist de modo geral (por alguma dll ou sei la… algo do tipo) … sem ter que acessar a pasta?

o motivo de nao rodar o tasklist fora da pasta é esse http://www.overclockers.com/forums/showthread.php?t=600015

[code]
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

public class ListProcess {
public static void main(String[] args) throws IOException {

	Runtime runtime = Runtime.getRuntime();

	String cmds[] = {"cmd", "/c", "tasklist"};

	Process proc = runtime.exec(cmds);

	InputStream inputstream = proc.getInputStream();

	InputStreamReader inputstreamreader = new InputStreamReader(inputstream);

	BufferedReader bufferedreader = new BufferedReader(inputstreamreader);

	String line;

	while ((line = bufferedreader.readLine()) != null) {

		System.out.println(line);

	}

}

}[/code]

adiciona a pasta cd \windows\system32\wbem à lista de endereços na variável de ambiente %PATH%

evefuji : ok… isso resolve no meu PC, o problema é quando executado em um outro PC

bom, para te animar um pouco, não lembro em quais versões do Windows funciona o tasklist, mas acho que no XP Home por exemplo não funciona. Idem para os Home Basic.

Para o XP professional, e os 7 ultimate sei que o tasklist funciona perfeitamente sem ter que adicionar essa pasta ao Path do sistema. Deve ser algum caso muito raro (ou algum aplicativo que durante a instalação altera o PATH ter removido essa referência), então, na minha opinião, não deveria se preocupar com isso.

Mas se quiser ainda fazer algo mais versátil, na pasta da sua aplicação você pode colocar as DLL’s e o tasklist. Assim vai funcionar mesmo que o SO não esteja habilitado essa função.

evefuji : tem como eu colocar uma “if” caso nao execute nada no talklist… fazendo com que copie a dll da pasta windows/system32/wbem/framedyn.dll
para a pasta /windows/system32/framedyn.dll

como ficaria?
desdeja obrigado

Depois do “apartir” é a primeira vez que vejo “desdeja”. Testemunhando a evolução da língua portuguesa…

Desde já, acho que é melhor você usar uma variação do Runtime.exec que inicia seu processo a partir do diretório correto - veja:

http://download.oracle.com/javase/7/docs/api/java/lang/Runtime.html#exec(java.lang.String,%20java.lang.String[],%20java.io.File)

Você pode passar o parâmetro “env” como null.

entanglement : “desdeja” faltou um pequeno espaço rsrs, mas muito obrigado pela sua dica, vou estudar sobre o assunto =)