AutoHotKey 和 Windows 8:Alt+Tab 命令不起作用

AutoHotKey 和 Windows 8:Alt+Tab 命令不起作用

我无法让它工作,无论我使用

快捷键

或者

发送 {Alt 向下}{tab}{Alt 向上}

我可以验证其他命令是否有效,因为我可以让热键显示一个消息框。看来 W8 已经做了足够多的改动,以破坏 AHK 的Alt+Tab钩子。

正在寻找解决方法。我正在尝试将LCtrl+映射TabAlt+ Tab(以及它们的 Shift 版本)。

答案1

在可执行文件的嵌入清单中设置 UIAccess=true 似乎可以解决此问题。可执行文件还必须位于受信任的位置,例如 Program Files 文件夹。有关更多信息和为您进行必要修改的脚本,请查找启用UIAccess在 AutoHotkey 论坛上。

感谢 Cliff Smolinsky 在Synergy 问题追踪器

Windows 8 中实施了许多安全更改,以防止非 Metro 应用注入会将您从 Metro 环境中移除的键。其工作原理是,如果快捷键不是来自物理键盘或具有适当权限的程序,则会被忽略。[...] 为了获得适当的权限,必须使用 UIAccess 构建程序

除了 MSDN 上的以下模糊评论外,我无法通过任何官方来源证实这一点:

辅助功能应用程序可以使用 SendInput 注入与 shell 处理的应用程序启动快捷键相对应的按键。此功能不保证适用于其他类型的应用程序。

答案2

我发现我可以用以下方式发送Alt+ :Tab

F1::发送输入,!{Tab}

换句话说,我必须将“Send”更改为“SendInput”才能使其与 Windows 8 兼容。

答案3

如果您使用的是 AutoHotkey(Basic),其代码库自 2009 年 9 月以来就没有更新过。显然,Windows 8 中的任何根本变化都没有得到解决。AutoHotkey_L更新得更及时,上次更新是本月。然而,变更日志,对 Windows 8 的进一步支持很少。

如果安装 AutoHotkey_L 后你的脚本仍然无法工作,你可以尝试其他发送命令:

  • 发送原始数据
  • 发送输入
  • 发送播放
  • 发送事件

否则,您只能耐心等待开发人员添加对 Windows 8 的支持。

答案4

第一个答案给了我一个线索,对我有用(使用Vista)的是:

²::SendEvent, !{Tab}

谢谢!

相关内容