Предотвращение кражи фокуса значка на панели задач при нажатии

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

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


person Adam Paynter    schedule 24.06.2009    source источник


Ответы (2)


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

person jdigital    schedule 25.06.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 не может считаться универсальной командой перехода фокуса. Однако, похоже, это соответствует моей конкретной ситуации.

person Adam Paynter    schedule 25.06.2009