Galera seguinte… até hoje usei KeyEvents em algum componente… seja JPanel ou qualquer outra coisa…
a duvida é a seguinte… como fazer um keylistener pegar pra fora do programa… pra interagir com outro programa assim… ± igual os keyloggers fazem, tipo minimizei meu aplicativo e estou em outro e com um atalho quero gerar um relatorio nele… nao imagino como isso acontece…
alguem saberia me explicar?
O que você pode fazer é tentar criar um atalho no menu Iniciar -> Programas para seu programa, e então definir uma tecla de atalho.
Note que isso irá iniciar o programa; se ele já estiver minimizado, você precisa ver se você pode fazer comunicação (via sockets, talvez) com a instância do programa que já está rodando.
não seria bem isso, acho que nao fui bem claro…
o que eu queria é que estando nesse outro programa, clicando por exemplo CTRL+F10, eu executasse um método la no outro, por exemplo imprimir um relatório, sem que isso faça ele abrir ou mudar alguma coisa
Antigamente você podia escrever no Windows programas que faziam exatamente o que você falou (ficavam vigiando as teclas e faziam eles mesmos certas coisas). Hoje em dia, mesmo escrevendo em Assembly e C você pode acabar não conseguindo fazer um programa desses (se ele não se instalar como um device driver), porque aqueles programas (anti-vírus, anti-spyware) não deixam esses programas funcionarem direito.
Os key loggers modernos funcionam com device drivers (e nesse ponto o Windows não apita mais), mas aí os antivírus e antispywares não deixam eles funcionar direito também.
No seu caso, se você cadastrar Alt+Shft+7 (por exemplo; não use Ctrl+F10 que pode ser usado em outros programas), você pode associar um atalho de um programinha (pode ser em qualquer linguagem) que avisa ao seu programa Java minimizado para ele fazer o tal do relatorio. Eu indico não fazer o programinha em Java porque ele iria demorar muito tempo para ser carregado.
entendi… mas e esse aviso como seria feito?
Como eu já disse antes, isso fica por sua conta. Normalmente você usaria alguma comunicação inter-processos como sockets.