Estou tentando fazer um pequeno programa que abra um outro e depois de um tempo minimize-o.
Para chamar o programa externo estou usando o bom e velho Runtime.exec() e capturando o processo em um objeto java.lang.Process.
Com esse objeto eu consigo encerrar o programa externo mas preciso minimiza-lo, como faria?
Process p = Runtime.getRuntime().exec("gimp");
p.???
dica, procura no google como minimizar programas via cmd (caso for windows) através do pid (process id ou algo do genero, senão me falhe a memória, o process tem o valor), acredito eu ser o meio mais fácil…
Sim, pelo cmd dá para fazer assim: start/min notepad e o notepad abrirá e automaticamente minimizará. O problema é que meu aplicativo precisa controlar quando minimizar, dessa forma não daria certo…
Estou fazendo um pequeno programa para monitorar uma aplicação full-screen (um jogo) e após um certo tempo alerta o usuário de alguma forma.
Para alertar, eu criei um JDialog com tudo que precisava, perfeito. Esse sistema chama o jogo e começa a monitorar, quando chega o momento certo, o usuário precisa receber o alerta. Pelo fato da aplicação ser full-screen, o JDialog não aparece… tentei fazer uma forma de alertar também em full-screen, mas meu alerta não sobrepõem o jogo, então tentei procurar na internet algum programinha que minimizasse tudo para que depois eu mandasse o alert. Achei! Achei um programinha no baixaki com 7kb que é só chama-lo e ele minimiza tudo! Funcionou quase perfeito, consigo chama-lo pelo Java só que ele também não conseguiu minimizar aplicações full-screen, só janelas normais… :evil: :evil: :evil: Por último, tentei um “artifício técnico”, usar a classe Robot para simular um ALT+Tab, até funcionou, tirou o foco do jogo fazendo-o minimizar e mostrar meu alert, o problema que depois disso o Java trava, o windows informa que o o javaw parou inesperadamente :evil: … e o meu programa precisa continuar rodando… não pode parar por isso. :?
Alguma idéia? Tem alguém aqui fodão em C,C++ que saiba como minimizar uma aplicação full-screen? Porque se precisar eu faço uma dll até…
Tem uma aplicaçãozinha chamada NirCmd que possui essas utilidades de manipular as janelas pela linha de comando… Se não tiver problema em usar um programinha externo, acho que serviria…
Tem uma aplicaçãozinha chamada NirCmd que possui essas utilidades de manipular as janelas pela linha de comando… Se não tiver problema em usar um programinha externo, acho que serviria…
Ahn… esse programinha de 7kb que vc baixou não seria o Nircmd né? =P
Se sim, foi malz… rs[/quote]
Eu tinha tentado o MinimizeAll.
Esse que vc sugeriu tem a opção de minimizar todas as janelas?
A única coisa que encontrei foi isso: “Minimize all your Internet Explorer windows”
Tentei dar umas modificadas nos parametros para minimizar tudo mas não deu certo :?
[find]: The method to find the window
handle: Finds the desired window by specifying the handle of the window in [window to find] parameter.
id: Finds the desired child window by specifying the id of the child window. Useful only for child windows.
class: Finds the desired window by specifying the class name of the window in [window to find] parameter.
title: Finds the desired window by specifying the exact title of the window in [window to find] parameter.
stitle: Finds the desired window by specifying the first few characters of the window in [window to find] parameter.
ititle: Finds the desired window by specifying a sequence of characters that exists in the window title.
alltop: All top windows.
alltopnodesktop: All top windows, except of desktop and tray windows.
active: The current active window.
foreground: The window in foreground.
desktop: The desktop window
process:Finds the desired window by specifying process ID (for example: /3412) or process name (for example: firefox.exe).
Então a principio, se você quiser minimizar todas as janelas… seria um “nircmd win min alltop”, funcionou aqui, apesar de ele ter minimizado algo que parece ser o msn (que já estava minimizado)… ou então pegar pelo processo (se for uma tela só)…