
我是 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