Предотвращение кражи значка в системном трее при нажатии - PullRequest
1 голос
/ 25 июня 2009

Я пишу приложение на Java, которое помещает значок в системный трей (через SWT ). Когда щелкают по этому значку, я хочу, чтобы он автоматически вводил некоторые клавиши (через класс Robot ) в любое текстовое поле, находящееся в фокусе в момент щелчка (может быть в любом окне). К сожалению, нажатие на иконку в системном трее уводит фокус от ранее сфокусированного окна, тем самым скрывая нажатия клавиш.

Есть ли способ заставить текст печататься в ранее сфокусированном окне?

Ответы [ 2 ]

0 голосов
/ 25 июня 2009

Хотя это не может считаться официальным решением, я нашел некоторый успех, выполняя ALT+TAB нажатия клавиш непосредственно перед выполнением текстовых нажатий клавиш.

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

Как я уже сказал, это далеко не официальное решение, учитывая, что на комбинацию ALT+TAB нельзя полагаться как универсальную команду перехода фокуса. Тем не менее, похоже, что он подходит для моей конкретной ситуации.

0 голосов
/ 25 июня 2009

Наверное, нет, по крайней мере, не легко. Этот вопрос обсуждался ранее.

...