Autohotkey:无法映射 RCtrl + Rshift + Tab:出现语法错误

Autohotkey:无法映射 RCtrl + Rshift + Tab:出现语法错误

我是 Autohotkey 的新用户。我正在尝试重新映射按键以用于 Outlook。

RCtrl & Tab::
WinGet, Active_ID, ID, A
WinGet, Active_Process, ProcessName, ahk_id %Active_ID%
if (Active_Process = "Outlook.exe") {
    Send !4
}
else {
    Send ^{tab}
}
return

RCtrl & RShift & Tab::
WinGet, Active_ID, ID, A
WinGet, Active_Process, ProcessName, ahk_id %Active_ID%
if (Active_Process = "Outlook.exe") {
    Send !5
}
else {
    Send ^+{tab}
}
return

第一个映射正如我所想的那样工作(到目前为止(:),但是第二个映射给了我一个错误:无效的热键

我尝试用谷歌搜索这个问题,但找不到正确的方法来映射 RCtrl 和 Rshift 和 Tab 的组合。

作为背景介绍,我尝试将用于从一封电子邮件跳转到下一封电子邮件(当电子邮件在单独的窗口中打开时)的 Alt + 4 映射到 RCtrl + Tab,并希望将跳转到上一封电子邮件的 Alt + 5 映射到 RCtrl + RShift + Tab。

您知道这里可能出现什么错误吗?

提前致谢。

答案1

我不认为您可以使用运算&符创建两个以上按键的组合。以下是手动检查 Shift 键状态的替代方法:

RCtrl & Tab::
WinGet, Active_ID, ID, A
WinGet, Active_Process, ProcessName, ahk_id %Active_ID%
if (Active_Process = "Outlook.exe") {
    If GetKeyState("RShift","P")    {
        Send !5
        return
    }
    else    {
        Send !4
        return
    }
}
else {
    Send ^{tab}
}
return

相关内容