Autohotkey 在特定应用程序中使用热键,我的代码有什么问题?

Autohotkey 在特定应用程序中使用热键,我的代码有什么问题?,autohotkey,Autohotkey,这是有效的: 向下转动:: Wingtittle,Title,A WingtClass,Class,A 如果(RegExMatch(标题,“扑克”)) {coordmode,鼠标,窗口 MouseGetPos、StartX、StartY 鼠标左键,325341 MouseMove、StartX、StartY } 否则 发送{wheeldown} 返回 这不起作用 a:: Wingtittle,Title,A WingtClass,Class,A 如果(RegExMatch(标题,“扑克”)) {

这是有效的:

向下转动::
Wingtittle,Title,A
WingtClass,Class,A
如果(RegExMatch(标题,“扑克”))
{coordmode,鼠标,窗口
MouseGetPos、StartX、StartY
鼠标左键,325341
MouseMove、StartX、StartY
}
否则
发送{wheeldown}
返回

这不起作用

a:: Wingtittle,Title,A
WingtClass,Class,A
如果(RegExMatch(标题,“扑克”))
{coordmode,鼠标,窗口
MouseGetPos、StartX、StartY
鼠标左键,510342
发送{Backspace}
发送{Backspace}
发送{Backspace}
发送{Backspace}
发送{Backspace}
发送,1.25
MouseMove、StartX、StartY
}
否则
发送{a}
返回

为什么不起作用:(


当我尝试在其他应用程序中使用“a”时,会出现错误消息。表示在1000ms或其他时间使用了71个热键。

将此添加到脚本顶部:

#MaxHotkeysPerInterval 300      ;default is 70

您遇到的错误在捕获并经常使用鼠标滚轮的脚本中很常见。Autohotkey将鼠标滚轮视为热键,并认为您不应每秒按热键超过70次。根据使用情况,滚动可以调用热键的次数超过70次。这一行允许超过70次。

当使用具有多行代码的热键时,第一行不会立即跟随双冒号。因此:

a:: WinGetTitle, Title, A
WinGetClass, Class, A
应该是这样的:

a::
WinGetTitle, Title, A
WinGetClass, Class, A
其次,您试图查找的命令被称为命令,其名称为“#IfWinActive”或“#If”,您的正则表达式应该与后面的to命令一起使用。这有很多,因此您需要查看文档中的命令

最后,在使用发送自身的热键时,您需要在其前面加上“$”前缀,以便:

a::
变成:

$a::

希望这有助于任何人在这篇长达一年的文章中回答这个问题。

请格式化您的代码。谢谢您的回复。但是,当我这样做时,请说我想在另一个窗口(我不想使用热键的窗口)中键入“A”。它不会键入“A”,它将暂停一秒钟,然后不键入字母。请尝试对要键入的窗口使用
inputbox