Captura de eventos de aplicações Java [RESOLVIDO]

12 respostas
Adelar

Olá pessoal,
alguém sabe fazer uma aplicação java capturar eventos (eventos de teclado e mouse) de outra aplicação java enquanto a outra é usada?

att.

12 Respostas

j0nny

Cara, fico meio vaga tua dúvida.
Vc está usando interface gráfica, é pra Web?
Especifica melhor.

Adelar

olá,
acabei não colocando corretamente… os eventos a que me refiro são os de uma aplicação desktop (swing/awt de preferência). O que quero fazer é o seguinte: enquanto rodo uma aplicação java swing/awt qualquer, possuo outra aplicação independente gravando todos os eventos de teclado e mouse que ocorrem, semelhante ao que uma aplicação de testes de interface com o usuário faz. Entretanto, não tenho idéia de como fazer esta aplicação de gravação de eventos.

att.

PaduaAlves

Se vc quer capturar os mesmo eventos que vai usar para o prograa da interface, basta capturar os mesmo eventos da mesma forma para asua aplicação que vai rodar em segundo plano

Adelar

Valeu mas não funciona, pois os eventos Swing/Awt são capturados baseados em um componente de Janela (botão, combo, …) ou o próprio JFrame. Não tenho idéia de como fazer isso funcionar em Java, devido a esta limitação. :?
Mais sugestões? :slight_smile:

Att.

Preco

Pensei em algo assim:

  1. Você pega os eventos de mouse e teclado e avisa um listener que esse evento ocorreu, na aplicação “falante”.
  2. A aplicação “ouvinte”, que implementaria esse listener, receberia a mensagem de evento e processaria.

O único porém nesse caso é que teria que registrar a aplicação “ouvinte” como um listener da primeira (um addMyListener(this) ou algo do tipo), não sei como poderia fazer isso de forma independente…
Não daria pra uma terceira aplicação instanciar a aplicação ouvinte, instanciar a falante e registrar a ouvinte na falante?

ViniGodoy

Não tem como fazer o que você quer em Java puro.

Scoobydoo

Resumindo…
Voce basicamente qué criar um keylogger…
xD
Isso é facinho brother…
é só pesquisar no Google…

Adelar

Valeu pelas dicas pessoal, vou fazer os testes depois do trabalho hoje. :slight_smile:

Adelar

Olá pessoal,
achei no guj mesmo uma solução usando a biblioteca swt no caso dos eventos do teclado http://www.guj.com.br/posts/list/109811.java. Para o mouse (posição, click, release, etc) talvez a mesma biblioteca sirva, mas ainda não pude verificar. A solução está chegando perto heheh :slight_smile:
Att.

KWill

Se for só para programas em Java usando AWT/Swing, pode ser que fazer um “EventQueue” que logue tudo basta, já que todos os eventos de aplicações AWT/Swing passariam pelo “EventQueue” customizado que você criaria.

Inté.

KWill

Lembrei, acho que tem até algumas discussões de segurança em relação ao “EventQueue”, já que ele poderia ser usado para monitorar todos os eventos de interface gráfica que passam por uma JVM.

Inté.

Adelar

olá pessoal,
consegui resolver o problema da obtenção dos eventos… o que estou fazendo é um programa para testes de interface, por isto a necessidade de captura de todos os eventos, tanto de mouse quanto de teclado.

Valeu

Criado 20 de março de 2010
Ultima resposta 18 de jun. de 2010
Respostas 12
Participantes 7