2

我正在使用StrokesPlus(使用SendKeys的鼠标手势)和以下快捷方式来关闭窗口:

acSendKeys("{DELAY=50}^{F_4}")

默认关闭窗口是 control+w,但并非所有程序都接受这一点(UltraEdit,例如,使用 control+F4 - 使用 control+w 切换自动换行,我经常使用它)。

我还使用Florian Winkelbauer 的 4 Clip,它将 F1-F4 绑定到剪贴板,因此 F1+c、F1+v 等用于复制/粘贴到第一个剪贴板。下面是来自 4clip 的绑定示例。

*F1::SendInput {blind}{F1}
*F2::SendInput {blind}{F2}
*F3::SendInput {blind}{F3}
*F4::SendInput {blind}{F4}

; F3 + F$
F3 & F4::
    Gosub SetDelimiter
return

; F4
F4 & c::CopyClipboard(4)
F4 & a::AppendClipboard(4)
F4 & s::SwapClipboard(4)
F4 & p::PrintClipboard(4)
F4 & v::PasteClipboard(c4)
F4 & b::PasteClipboard(cp4)
F4 & d::Clear(4)

我发现的问题是,当我使用 StrokesPlus 快捷方式时,窗口会关闭,但随后系统似乎仍被按下控制键:我可以按退出键并出现开始菜单(就像按 control+ 时一样逃脱)。

我已经在 Windows 7 64 位和 Windows XP 64 位上复制了这个。

我已经确认,如果我注释掉 4 剪辑中的所有 F4 绑定,问题就会消失。

我也在StrokesPlus 论坛Autohotkey 论坛上发布了这个。

4

2 回答 2

2

RobStrokesPlus的作者)在回复我在 StrokesPlus论坛上的帖子时解决了这个问题。

acSendControlDown()
acSendKeys("{F_4}")
acSendControlUp()

在 StrokesPlus 中使用上述内容而不是默认值:

acSendKeys("{DELAY=50}^{F_4}")

于 2012-08-13T23:58:19.493 回答
1

这是因为该Ctrl键在默认情况下被占用为“忽略键” StrokesPlus,这意味着当Ctrl按下该键时,所有鼠标手势都被暂时禁用。

如果您不使用此功能,您可以转到首选项并将“忽略键”设置为“无”。然后,您可以Ctrl像往常一样将密钥写入脚本。

于 2020-02-01T05:05:14.170 回答