2009-06-24 9 views
1

J'écris une application Java qui place une icône dans la barre d'état système (via SWT). Lorsque l'on clique sur cette icône, je souhaite qu'elle saisisse automatiquement certaines touches (via la classe Robot) dans le champ de texte sélectionné au moment du clic (dans n'importe quelle fenêtre). Malheureusement, en cliquant sur l'icône de la barre d'état système, le focus disparaît de la fenêtre précédemment mise au point, ce qui vous permet de voler les touches.Empêche l'icône de la barre d'état système de dérober le focus lorsque vous cliquez sur

Y a-t-il un moyen de faire entrer le texte dans la fenêtre précédemment mise au point?

Répondre

0

Bien que cela ne puisse pas être considéré comme une solution officielle, j'ai trouvé un certain succès en émettant ALT+TAB coups de touches immédiatement avant d'émettre les frappes de touches textuelles.

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 

Comme je l'ai dit, ce qui est loin d'être une solution officielle, compte tenu de la combinaison ALT+TAB ne peut être invoquée pour être une commande de transition de mise au point universel. Cependant, il semble que ce soit approprié pour ma situation particulière.

Questions connexes