Sou novo no fórum e novo em java, mas domino algumas liguagens de programação WEB como JS, PHP e afins. Bom, estou precisando esclarecer uma dúvida antes de entrar fundo em java, pois já sei o básico, pois para meu TCC vou precisar criar um programa que fique em segundo plano que reconheça as ações do mouse e execute uma açao em outro programa qualquer rodando. Tipo se eu digitar a letra “S” ai meu programa que estará em segundo plano reconheça esse S e manda um comando para um programa aberto tipo no bloco de notas e escreva “sapato” seria algo desse tipo para iniciar… É possível fazer isso em java?
Agradeço desde já!
É possível realizar isso em java?
4 Respostas
Se for pra Windows não use Java de jeito nenhum, use .NET, onde terá fácil acesso a API do Windows.
Já fiz algo parecido pra capturar as teclas digitadas usando a função GetAsyncKeyState da user32.dll do windows, mas foi em C# ou VB se não me engano, se tem como jogar valores em um bloco de notas que não tem nenhum vínculo com sua aplicação, isso eu não sei.
Sei que você pode usar uma API do Eclipse para fazer esse hack nativo.
(inclusive você pode criar keyloggers)
GetAsyncKeyState seria a pior opção.
alem de custosa, é ineficiente pra esse caso.
melhor vc usar a SetWindowsHookEx.
dá pra fazer em java, claro q não de forma trivial como faria em c, c++, pascal, etc.
ps.
custosa pq vc teria q ficar num loop requisitando o estado das teclas;
ineficiente pq uma tecla poderia ser pressionada e solta antes q seu app a testasse. e, caso o cara pressione e segure, vc não perceberia as repetições. é o o caso em q é melhor o app pedir pra ser avisado do q ficar perguntando. rsrsrs