代码之家  ›  专栏  ›  技术社区  ›  Adam Paynter

防止单击时系统托盘图标窃取焦点

  •  1
  • Adam Paynter  · 技术社区  · 15 年前

    我在爪哇写了一个在系统托盘中放置图标的应用程序 SWT )单击此图标时,我希望它自动键入一些键(通过 Robot 类)进入单击时焦点所在的任何文本字段(可以在任何窗口中)。不幸的是,单击系统托盘图标会将焦点从先前聚焦的窗口移开,从而窃取按键。

    是否有一种方法可以使文本输入到以前聚焦的窗口中?

    2 回复  |  直到 13 年前
        1
  •  0
  •   Community basarat    7 年前

    可能不会,至少不容易。 This issue been discussed before.

        2
  •  0
  •   Adam Paynter    15 年前

    虽然它不能被认为是一个正式的解决方案,但我通过发行 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+标签 组合不能依赖于通用焦点转换命令。不过,这似乎符合我的特殊情况。