我正在用 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
不能依赖这个组合作为一个通用的焦点转换命令。但是,它似乎适合我的特殊情况。