Autohotkey 多鼠标坐标

Autohotkey 多鼠标坐标,autohotkey,Autohotkey,我正试图弄明白如何让一个自动热键脚本通过鼠标在不同的热键上同时保存不同的坐标,而不会一个覆盖另一个 我想做一个循环,执行一些事件序列。假设在某一点上,我希望它执行我在循环之前或期间保存的第一个坐标(但在操作之前),然后我希望脚本在循环中稍后的点上执行另一个坐标 我希望能够预设坐标(而不是在热键1动作前按热键1,然后在热键1后按热键2,以确保不会覆盖坐标) 这方面的一个例子是: 如果一个热键保存一个坐标: 一个热键保存另一个坐标: 如果输入到随机循环中 如果按该顺序触发热键1和热键2,热键1将被保

我正试图弄明白如何让一个自动热键脚本通过鼠标在不同的热键上同时保存不同的坐标,而不会一个覆盖另一个

我想做一个循环,执行一些事件序列。假设在某一点上,我希望它执行我在循环之前或期间保存的第一个坐标(但在操作之前),然后我希望脚本在循环中稍后的点上执行另一个坐标

我希望能够预设坐标(而不是在热键1动作前按热键1,然后在热键1后按热键2,以确保不会覆盖坐标)

这方面的一个例子是:

如果一个热键保存一个坐标:

一个热键保存另一个坐标:

如果输入到随机循环中

如果按该顺序触发热键1和热键2,热键1将被保存,然后被热键2覆盖,使热键1与热键2的坐标相同。我想要两个单独保存的坐标


我是通过让一个脚本触发另一个脚本来实现这一点,还是可以在单个脚本中实现这一点?

“热键1”和“热键2”不会相互覆盖。每个变量都有不同的输出变量(“posx”和“posy”与“posx1”和“posy1”)。你试过运行它吗?看来它会按照你的意愿工作。另一方面,您有很多不必要的头命令,无法摆脱循环。您是对的,上面的代码主要是为了缩小问题范围而压缩的。对其进行了相应的编辑。我确实运行了多次,但每次尝试时,热键1和热键2保存的坐标将取决于最后按下的内容,因为两者都会以某种方式相互对应。我将测试我的MouseMove语法是否不正确,并尝试:
MouseMove,%pos(根据热键坐标插入数字)x,%pos(根据热键坐标插入数字)y
我怀疑这可能是代码问题的一部分,但我稍后会报告。看起来它仍然可以正常工作。您是否介意发布与
MouseGetPos
相关的确切代码“热键1”和“热键2”部分?
hotkey1::
MouseGetPos, posx, posy,

// If inserted into a loop, it would be:
MouseMove, %posx%, %posy%,
hotkey2::
MouseGetPos, posx1, posy1,

// In loop:
MouseMove, %posx1%, %posy1%,
#SingleInstance Force
SendMode Input
#MaxThreadsPerHotkey, 2
#NoEnv
#Persistent
SetWorkingDir %A_ScriptDir%
SetTitleMatchMode, 3
SetMouseDelay, -1

Process, Priority, , H
SetKeyDelay, -1, -1
SetDefaultMouseSpeed, 0

SetKeyDelay, 0, 10, Play 
SetMouseDelay, 10, Play

CoordMode, Mouse, Screen

hotkey1::
MouseGetPos, posx, posy,
return

hotkey2::
MouseGetPos, posx1, posy1,
return

Toggle=0
f::
Toggle := !Toggle
Loop
{
 If Toggle
   {
    Send {a}
    sleep 100
    MouseMove, %posx%, %posy%, // Say I want it to move to bottom left corner
    Send {LButton}
    sleep 100

            If !Toggle
                Break

    MouseMove, %posx1%, %posy1%, // Say this coordinate would be top-right corner
    Send {LButton}
    sleep 100
    Send {c}
   }
}
return

q::ExitApp