使用鼠标位置激活键盘键的代码

问题描述

我想制作一个脚本,无论我的鼠标向左移动并保持 A,当我的鼠标向右移动时它激活并保持 D,我是 AutoHotkey 的新手,所以我不知道如何要做到这一点,' 我做了这个脚本,但我不知道它是否有效

Repository
|
|-> Folder A
|
|-> Folder B
|
`-> Folder C

解决方法

这个脚本应该做你想让它做的事情。不过有几个关键点:

  • Loop,99999999999:如果您想要无限循环,只需使用 Loop,不带附加参数。
  • MouseGetPos:如果要跟踪鼠标位置,首先需要提供一个变量,用于存储 x/y 坐标。在这种情况下,为了与您的其余代码保持一致,我选择使用 MouseGetPos,x 将 x 坐标存储为变量 x 以与您的其余代码保持一致。
  • Send:来自section of the Docs about holding down keys

按住或松开按键:将按键名称括在大括号中,后跟单词 Down 或 Up。例如:

Send {b down}{b up} 
Send {TAB down}{TAB up} 
Send {Up down}  ;Press down the up-arrow key. 
Sleep 1000  ; Keep it down for one second. 
Send {Up up}  ; Release the up-arrow key. 

最终代码:

Loop
    {
    MouseGetPos,x
    if (x < 683){
        Send {a down}
        while(x < 683){
            MouseGetPos,x
            Sleep 1
        }
        Send {a up}
    }
     else if (x > 683) {
        Send {d down}
        while(x > 683){
            MouseGetPos,x
            Sleep 1
        }
        Send {d up}
    }
}
Return
Esc::ExitApp

如果它不能按您希望的方式工作,只需 lmk 不正常工作怎么办,我很乐意进行修改。