Pregunta

Estoy escribiendo una aplicación en Java que coloca un icono en la bandeja del sistema (a través de SWT ) Cuando se hace clic en este icono, deseo que escriba automáticamente algunas teclas (a través de clase Robot ) en cualquier campo de texto que esté enfocado al momento de hacer clic (podría estar en cualquier ventana). Desafortunadamente, al hacer clic en el ícono de la bandeja del sistema, el foco se aleja de la ventana previamente enfocada, robando así las pulsaciones de teclas.

¿Hay alguna manera de hacer que el texto se escriba en la ventana previamente enfocada?

¿Fue útil?

Solución

Probablemente no, al menos no fácilmente. Este problema se ha discutido antes.

Otros consejos

Aunque no puede considerarse una solución oficial, he encontrado cierto éxito al emitir pulsaciones de teclas ALT + TAB inmediatamente antes de emitir las pulsaciones de teclas textuales.

Robot robot = new Robot();

robot.keyPress(KeyEvent.VK_ALT);
robot.keyPress(KeyEvent.VK_TAB);
robot.keyRelease(KeyEvent.VK_ALT);
robot.keyRelease(KeyEvent.VK_TAB);

// ... The keyPress/keyRelease pairs for the actual characters now begin

Como dije, esto está lejos de ser una solución oficial, ya que no se puede confiar en que la combinación ALT + TAB sea un comando de transición de enfoque universal. Sin embargo, parece ajustarse al proyecto de ley para mi situación particular.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top