9

我正在尝试使用 Java Robot调出alt+菜单。tab当我调用 alt_tab() 方法时,我想调出alt+tab菜单并保持菜单处于打开状态。我知道这可以使用alt++来ctrl实现tab

到目前为止,我已经尝试了下面的代码,也只是alt+tab没有控制键。我不知道为什么它没有调出菜单。它所做的只是模拟按下 alt 键。

public void alt_tab() {
    Robot robot = new Robot();
    robot.keyPress(KeyEvent.VK_ALT);
    robot.keyPress(KeyEvent.VK_CONTROL);
    robot.keyPress(KeyEvent.VK_TAB);
    robot.delay(100);
    robot.keyRelease(KeyEvent.VK_TAB);
    robot.keyRelease(KeyEvent.VK_CONTROL);
    robot.keyRelease(KeyEvent.VK_ALT);
}

我正在使用 Windows 8 Pro 和 JDK 7。感谢任何帮助!

4

2 回答 2

6

有一个Windows 开发中心线程讨论了这个问题。显然,Windows 8 中的规则发生了变化。

除非应用程序是具有UiAccess特权的辅助技术应用程序,否则不能保证可以在 Shell 中触发响应的键盘输入模拟不再起作用。

“可访问性应用程序可以使用 SendInput 注入与外壳处理的应用程序启动快捷键相对应的击键。不保证此功能适用于其他类型的应用程序。” —发送输入功能 (Windows)

必须满足以下要求:

  • 签署
  • 安装在%ProgramFiles%%SystemRoot%\system32
  • uiAccess='true'在清单中指定
  • SYSTEM或当前登录的用户下运行

谷歌群组

于 2013-01-27T17:01:42.387 回答
2

我能够找到解决方法。我按照站点上的说明创建了ALT+TAB菜单的快捷方式,并使用

Runtime.getRuntime().exec("cmd \c start " + <path\to\shortcut\>);

在没有任何特殊 UIAccess 权限的情况下启动ALT+菜单。TAB感谢大家的回复。

于 2013-02-04T15:27:30.763 回答