0

我有一个新键盘,它有一个拆分空格键,左手拇指上的退格键,右手拇指上的空格键。在拿到这个键盘之前,我是用快捷键Ctrl++来打开Launchy的Alt。有了这个新键盘,我也希望Space能够使用Ctrl++ 。AltBackspace

我将以下映射添加到 AutoHotKey

^!BS::
MsgBox Working
SendInput ^!{Space}
return

如果我打开了某些窗口(比如 Notpad),按下Ctrl++会显示消息框,然后按预期启动程序(与++Alt的Launchy 绑定由它自己的选项 UI 内容控制)。但是,某些窗口(例如 Powershell)似乎吞下了 SendInput 部分,所以我会看到消息框,但 Launchy 不会打开。BackspaceCtrlAltSpace

我该怎么做才能让 AutoHotKey 将它的命令发送到常规消息队列而不是活动窗口。

注意:我已经尝试过使用各种不同的组合,但它似乎不起作用。

编辑:感谢 MCL 建议 WinActivate 引导我朝着正确的方向前进。完整详情如下

解决方案:

^!BS::
DetectHiddenWindows, on
WinActivate, Launchy
SendInput ^!{Space}
return

出于某种原因,某些应用程序正在吞噬 AHK 生成的键盘快捷键。所以 Launchy 从来没有收到过它们,也没有启动。但是,DetectHiddenWindowsWinActivate后跟常规键盘快捷键似乎可以工作。

4

1 回答 1

0

与在某处发送密钥相比,使用本机 AHK 代码激活窗口通常是更可取的选择。WinActivate会做你想做的。但是,您必须为您的窗口选择合适的标识符。使用 Window Spy 检查窗口;通常,窗口类 ( ahk_class) 是一个不错的选择。如果您的应用程序只有一个窗口,AHK_Lahk_exe也是一个不错的选择。

您的代码可能如下所示:

!BS::WinActivate, ahk_exe launchy.exe

于 2013-09-12T06:28:06.527 回答