[RESOLVIDO] - Focar um Prompt do DOS  XML
Índice dos Fóruns » Assuntos gerais (Off-topic)
Autor Mensagem
RenataFA
Virtual Machine Man
[Avatar]

Membro desde: 24/08/2006 08:15:10
Mensagens: 698
Offline

Tenho um problema que preciso resolver urgentão...

Imagine que estou no windows e tenho um prompt de comando do MS-DOS aberto, esse prompt pode estar minimizado na barra, ou aberto msm, só que a questão é que ele não está com o foco, qq outra coisa está focada.

Preciso programaticamente, agir como se o usuário clicasse sobre o prompt na barra de tarefas. Qdo fazemos isso no windows ele abre o prompt e foca. É isso que preciso fazer.

Pode ser algum programa que exista e já faça isso bastando eu passar o nome do que eu quero que ele abra. Pode ser comandos em java por ex, delphi, C++, etc... (ou outra linguagem) ou um comando a ser enviado para o windows, qq coisa assim.

Alguém sabe como ?

Grata,
Renata

This message was edited 1 time. Last update was at 18/12/2008 10:39:11


[]'s, Renata
[Email]
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline

Isso não é tão trivial quanto parece porque a API do Windows que poderia resolver tal problema (SetForegroundWindow), a partir do Windows 98, não funciona sempre. Há um monte de condições que estão descritas na documentação da API

SetForegroundWindow Function

AllowSetForegroundWindow Function
[WWW]
RenataFA
Virtual Machine Man
[Avatar]

Membro desde: 24/08/2006 08:15:10
Mensagens: 698
Offline

Não faço idéia de como usar isso...

Tem algum exemplo simples? Se bem q vc já disse que não funciona né...

[]'s, Renata
[Email]
Oliveira.caio
JavaGuru
[Avatar]
Membro desde: 24/07/2008 19:38:33
Mensagens: 226
Localização: São Paulo - SP
Offline

Com o visual basic vc consegue fazer isso.

Me adiciona no msn que vou te mandar um exe para ver se atende sua necessidade.

Grato
Caio Oliveira



[Email] [WWW] [MSN]
RenataFA
Virtual Machine Man
[Avatar]

Membro desde: 24/08/2006 08:15:10
Mensagens: 698
Offline


Gente!!!

Brigada por tentarem me ajudar, mas pode deixar. Um amigo meu conseguiu meu ajudar aqui e fizemos. Não foi com java (como eu disse que nem precisava ser).

Agradeço de qq forma.

Grata,
Renata

[]'s, Renata
[Email]
KWill
Virtual Machine Man
[Avatar]

Membro desde: 18/09/2006 10:05:46
Mensagens: 609
Offline

Se o problema teria sido resolvido, talvez fosse bom se você pudesse compartilhar a solução com o pessoal aqui do fórum...

Inté.

"Só estou certo de que não possuo outras certezas" - KWill
"Não penso, mas Googlo, logo existo!" - Geração Copy-Cola
RenataFA
Virtual Machine Man
[Avatar]

Membro desde: 24/08/2006 08:15:10
Mensagens: 698
Offline

Aqui está,,, é que como falei, não é java e o GUJ é um forum de java...




OBS: Créditos a João, meu amigo que resolveu o problema!

This message was edited 1 time. Last update was at 18/12/2008 10:54:53


[]'s, Renata
[Email]
KWill
Virtual Machine Man
[Avatar]

Membro desde: 18/09/2006 10:05:46
Mensagens: 609
Offline

RenataFA wrote:Aqui está,,, é que como falei, não é java e o GUJ é um forum de java...




OBS: Créditos a João, meu amigo que resolveu o problema!

Ainda que esse código acima me pareça delphi/pascal, consegui fazer um porte dele usando JNA:
Interface para a api User32 do Windows:

Classe para usar:


Omiti os imports da biblioteca JNA nos códigos acima, mas isso não deve ser problema para quem for usar...

Inté.

This message was edited 1 time. Last update was at 18/12/2008 12:07:52


"Só estou certo de que não possuo outras certezas" - KWill
"Não penso, mas Googlo, logo existo!" - Geração Copy-Cola
mauro80
Debugger
[Avatar]

Membro desde: 05/09/2008 12:33:41
Mensagens: 70
Localização: Brasil
Offline

KWill wrote:
RenataFA wrote:Aqui está,,, é que como falei, não é java e o GUJ é um forum de java...




OBS: Créditos a João, meu amigo que resolveu o problema!

Ainda que esse código acima me pareça delphi/pascal, consegui fazer um porte dele usando JNA:
Interface para a api User32 do Windows:

Classe para usar:


Omiti os imports da biblioteca JNA nos códigos acima, mas isso não deve ser problema para quem for usar...

Inté.


Olá, parabéns fera!
abs.

Mauro
bandrade
GUJ Ranger

Membro desde: 20/01/2003 15:45:15
Mensagens: 782
Offline

E qual foi a solução?

Will Code For Food
KWill
Virtual Machine Man
[Avatar]

Membro desde: 18/09/2006 10:05:46
Mensagens: 609
Offline

bandrade wrote:E qual foi a solução?


Engraçado, acho que a RenataFA postou o código delphi/pascal no tópico e eu adaptei para Java usando JNA...

Inté.

"Só estou certo de que não possuo outras certezas" - KWill
"Não penso, mas Googlo, logo existo!" - Geração Copy-Cola
Leozin
JWizard
[Avatar]

Membro desde: 18/06/2005 21:01:26
Mensagens: 2310
Localização: São Paulo/SP
Offline

KWill, você testou esse código e tá ok?

eu nem cheguei a testar, mas pelo visto parece que ficou bem animal esse teu código

parabéns

EDIT:

Caralho velho, tu mandou bem demais! Acabei de testar e ficou muito legal!

Tu tem algumas dicas de fontes, livros sei lá, pra lidar com JNA etc? Ou saber mais sobre a API do windows?

This message was edited 2 times. Last update was at 18/12/2008 19:20:37


http://www.leozin.com.br/blog
[ICQ]
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline

Para saber mais sobre a API do Windows, consulte o pai dos burros, aham, o MSDN:

http://msdn.microsoft.com/en-us/library/aa139672.aspx

É bom saber um pouco de C para poder entender as especificações da API.


[WWW]
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline

Mas como a Renata deve ter percebido, o código acima nem sempre funciona (muitas vezes ele só faz o botão na taskbar referente à janela ficar piscando). SetForegroundWindow depende de um monte de condições para que funcione do jeito que você quer.


[WWW]
RenataFA
Virtual Machine Man
[Avatar]

Membro desde: 24/08/2006 08:15:10
Mensagens: 698
Offline

thingol wrote:Mas como a Renata deve ter percebido, o código acima nem sempre funciona (muitas vezes ele só faz o botão na taskbar referente à janela ficar piscando). SetForegroundWindow depende de um monte de condições para que funcione do jeito que você quer.


Sim thingol, vc tem razão... só que conseguimos resolver isso, é só mandar o msm comando duas vezes. Na primeira ele seleciona, na segunda ele abre a Janela, ficou perfeito! rs...

[]'s, Renata
[Email]
 
Índice dos Fóruns » Assuntos gerais (Off-topic)
Ir para:   
Powered by JForum 2.1.8 © JForum Team