Capturar janela de aplicativo

Boa tarde !

preciso capturar a janela de um aplicativo que está aberta no desktop (Ex: documento do Word aberto, documento do Lotus Notes, etc…). Com Visual Basic eu consigo isto passando como parâmetro o nome da janela. Alguém conhece algo pronto para fazer isto, ou teriam a idéia de algo não complicado para realizar isto.

Agradeço desde já por alguma ajuda :smiley: .

Olá

O que é janela aberta no desktop?

Em dia que abro poucas janelas como hoje tenho 17 janelas abertas entre outlook, eclipse, vários notepads, varios windows explorer e vários Internet explorer. Como um aplicativo pode saber qual janela deve capturar?

Serve Alt+Esc e Alt+PrintScreen para enviar uma das janelas para o clipboard. Do clipboard dá para pegar com:

java.awt.datatransfer.Clipboard

public Transferable getContents(Object requestor)

(Retorna um objeto transferable representando o conteúdo atual do clipboard, veja a interface Transferable em java.awt.datatransfer )

[]s
Luca

:shock:
17???

:shock:
17???[/quote]

Ueh, pq o espanto? Eu tou quase la… 12 em um monitor e 3 em outro :smiley:

…mas se ICQ contar como janela, entao putz, temos ai umas 30, 40… :slight_smile:

Quando você abre um aplicativo, na parte de cima da janela fica um título e por este título que o VB consegue encontrar a janela e torná-la ativa. Não necessito do conteúdo da janela, o que preciso é o seguinte:

  • encontrar a janela pelo título;
  • torná-la ativa;
  • Enviar comandos de tecla que executem um item de menu do aplicativo.

Consigo fazer isto com o VB, para fazer com Java talvez tivesse que fazer alguma integração com APIs do windows, mas imagino que gastaria muito tempo para fazer isto. Se algué tiver alguma idéia melhor, por favor me envie.

Obrigado,

Olá

Para o que vc quer realmente é necessário acessar a API do Windows via JNI. Não é dificil. Se você sabe fazer em VB na verdade usa a mesma DLL que vai acessar por JNI. Precisa de JNI e um tiquinho de C para fazer a chamada à DLL da API o Windows. Não deixe de pesquisar na MSDN pois as vezes vai encontrar a parte de C já quase pronta.

[]s
Luca

Olá

Complementando. É possível pegar o handle da janela. Me lembro que já fiz isto.

Mas revendo sua mensagem vi que quer executar funções do menu da outra janela. Acho que vai precisar saber que funções são chamadas pelo menu para poder chamar também.

[]s
Luca

Depois o win pede água não é a toa…trilhões de instâncias em execução…Toma-lhe RAM,toma-lhe RAM…lentidão…Swap…BOOM! :shock: :smiley: