Focus em Processos

8 respostas
C

Tenho o seguinte cenário:

Preciso rodar alguns programas fora da VM, usando o Process consegui sem problemas:

Runtime runTime = Runtime.getRuntime();
Process process = runTime.exec("calc.exe");
Process process2 = runTime.exec("notepad.exe");

Mas como poderia alternar o focus entre os dois processos?
Porque ambos devem continuar rodando, mas serão utilizados pelo usuario um de cada vez.

Alguma idéia?

8 Respostas

kicolobo

você não pode. Só seria possível se pudesse tornar um processo “Modal”, como uma janela.

C

Alguma sugestão pra contornar esse problema?

Mesmo que envolva outra tecnologia, apis.

Priuli

Sim

Runtime runTime = Runtime.getRuntime();
Process process = runTime.exec("calc.exe");
process.waitFor();//a thread ficara esperando o termino da execução do process, vê se serve para o que vc quer fazer
Process process2 = runTime.exec("notepad.exe");
process2 .waitFor();
kicolobo

Priuli:
sim…

Runtime runTime = Runtime.getRuntime();

Process process = runTime.exec(calc.exe);

process.waitFor();//a thread ficara esperando o termino da execução do process, vê se serve para o que vc quer fazer

Process process2 = runTime.exec(notepad.exe);

process2 .waitFor();

Boa! Havia me esquecido desta.

C

Priuli:
sim…

Runtime runTime = Runtime.getRuntime();

Process process = runTime.exec(calc.exe);

process.waitFor();//a thread ficara esperando o termino da execução do process, vê se serve para o que vc quer fazer

Process process2 = runTime.exec(notepad.exe);

process2 .waitFor();

Infelizmente isso não resolve meu problema. Mas obrigado mesmo assim.

Acho que não fui claro, ambos processos devem continuar rodando e vou alternar o uso de cada um.

Tipo: começo a usar a calculadora, e depois o notepad, retorno pra calculadora e assim por diante.

kicolobo

cesarpereira538:
Priuli:
sim…

Runtime runTime = Runtime.getRuntime();

Process process = runTime.exec(calc.exe);

process.waitFor();//a thread ficara esperando o termino da execução do process, vê se serve para o que vc quer fazer

Process process2 = runTime.exec(notepad.exe);

process2 .waitFor();

Infelizmente isso não resolve meu problema. Mas obrigado mesmo assim.

Acho que não fui claro, ambos processos devem continuar rodando e vou alternar o uso de cada um.

Tipo: começo a usar a calculadora, e depois o notepad, retorno pra calculadora e assim por diante.

É, neste caso, não há muito o que você possa fazer. Talvez, no máximo, usando C você consiga lidar com o gerenciador de tarefas do sistema operacional de tal modo que consiga este tipo de controle. Mas ai foge bastante do escopo do GUJ né? E também seria bastante dependente do sistema operacional.

Priuli

Neste caso só utilizando recurso especifico do S.O, como java é mult-plataforme fica sem acesso a muitos recursos especificos do S.O… assim como disse o kicolobo

C

No meu caso a plataforma é Windows.

Voce saberia indicar o que estudar!?

Criado 9 de novembro de 2010
Ultima resposta 9 de nov. de 2010
Respostas 8
Participantes 3