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

StackOverflow https://stackoverflow.com/questions/1041532

  •  22-07-2019
  •  | 
  •  

Вопрос

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

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

Это было полезно?

Решение

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

Другие советы

Хотя это не может считаться официальным решением, я нашел некоторый успех, выполняя нажатия клавиш 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 как универсальную команду перехода фокуса. Тем не менее, это, кажется, подходит для моей конкретной ситуации.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top