ícone da bandeja do sistema Prevent de roubar foco quando clicado
Pergunta
Eu estou escrevendo um aplicativo em Java que coloca um ícone na bandeja do sistema (via SWT ). Quando este ícone é clicado, eu gostaria de tê-lo automaticamente digitar algumas teclas (através do rel classe Robot ) em qualquer campo de texto está em foco no momento do clique (poderia ser em qualquer janela). Infelizmente, clicando no ícone na bandeja do sistema rouba o foco longe da janela anteriormente focado, roubando assim os cursos chaves.
Existe uma maneira de fazer com que o texto a ser digitado na janela anteriormente focalizado?
Solução
Provavelmente não, pelo menos não com facilidade. Este problema foi discutido antes.
Outras dicas
Embora não pode ser considerado uma solução oficial, eu fui encontrando algum sucesso através da emissão de cursos chaves ALT+TAB
imediatamente antes de emitir os cursos chaves textuais.
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 eu disse, isso está longe de ser uma solução oficial, considerando a combinação ALT+TAB
não pode ser invocado para ser um comando universal transição foco. No entanto, ele parece estar ajustando o projeto de lei para a minha situação particular.