首页 > 解决方案 > 如何在 Autohotkey 中重复发送密钥

问题描述

我想编写一个循环键 X 次的 AutoHotkey 脚本。

例如,这是一个脚本,它在文件资源管理器中用 key 的功能覆盖ENTERkey 的功能。F2

#IfWinActive ahk_class CabinetWClass
Enter::
Send, {F2}

#IfWinActive ahk_class CabinetWClass
Enter::
Send, {ENTER}

#IfWinActive

目标是按ENTER重命名选择的文件,然后按ENTER确认重命名。按下ENTER刚刚重命名的同一文件应F2再次发送密钥(以防出现拼写错误)。

目前第二个块不起作用,因为我正在发送相同的密钥,如何解决这个问题?

标签: autohotkey

解决方案


基本上,您似乎正在尝试将不同的任务分配给同一个热键,并且由于这是单独完成的,所以 ahk 正在选择其中一个任务并使用该任务运行,并且只运行该任务。如果循环可以在热键中使用,所以我建议使用它在两个预期结果之间旋转。请看下面的例子:

temp:= 1

enter::
    if(temp==1)
    {
        Send, {ENTER}
        temp:=2
    }
    else if(temp==2)
    {
        Send, {F2}
        temp:=1
    }
return

1::
    Temp:=1
return

2::
    temp:=2
return

^x::ExitApp

我还添加了 1/2 的热键,以允许您手动决定结果,而不是在出现任何问题时专门分配它。哦,还有 ctrl+x 关闭宏。


推荐阅读