Autohotkey 单击并沿给定方向拖动一个像素

Autohotkey 单击并沿给定方向拖动一个像素,autohotkey,Autohotkey,我正在寻找一个脚本,将点击并按住鼠标右键,并在一个给定的方向上拖动每x或2秒1像素。我可以通过点击相应的方向键或手动调整脚本来告诉它朝给定方向移动 谢谢大家! 不完全确定您想要什么,但请尝试以下方法: CoordMode, Pixel, Screen direction = left secondsBetweenMoves = 0.1 F1:: ;F1 to start it SendInput, {LButton Down} SetTimer, Move, %seconds

我正在寻找一个脚本,将点击并按住鼠标右键,并在一个给定的方向上拖动每x或2秒1像素。我可以通过点击相应的方向键或手动调整脚本来告诉它朝给定方向移动


谢谢大家!

不完全确定您想要什么,但请尝试以下方法:

CoordMode, Pixel, Screen

direction = left
secondsBetweenMoves = 0.1

F1:: ;F1 to start it
    SendInput, {LButton Down}
    SetTimer, Move, %secondsBetweenMoves%
Return
F2:: ;F2 to end it
    SendInput, {LButton Up}
    SetTimer, Move, Off
Return

Move:
    MouseGetPos, mouseX, mouseY
    If (direction = "left") {
        MouseMove, mouseX-1, mouseY
    }
    Else If (direction = "right") {
        MouseMove, mouseX+1, mouseY
    }
    Else If (direction = "up") {
        MouseMove, mouseX, mouseY-1
    }
    Else If (direction = "down") {
        MouseMove, mouseX, mouseY+1
    }
Return

send-event命令可能会使您的生活更加轻松。例如,您试图在一个简单的无限循环中执行的操作:

coordmode, mouse, screen
setmousedelay, 0        # This makes the mouse move extremely fast

loop {
    mousegetpos, mx, my
    mx := mx+1
    sendevent {click, r, down}
    sendevent {click, %mx%, %my%, r, up}
    sleep 2000
}
这个循环将按住右键,每两秒钟向右移动一个像素。如果您想让它向左移动,请更改

mx := mx+1

使其向上或向下移动是相同的机制,但改为向变量my添加或减去


这个循环可以做成一个计时器,用热键来启用或禁用它。

我自己尝试着这样做,但鼠标右键按下部分仍然有点混乱。它在不按住鼠标右键的情况下向右移动光标约3次,然后开始踢入并持续按住鼠标右键。不知道为什么在鼠标右键按下的情况下无法获得前3个左右的屏幕截图。代码Persistent$F10::Capture Numpad0::ExitApp Capture{hours:=1.0循环,%hours*720{单击鼠标右键移动,1,0,0,R发送,{PrintScreen}Sleep,2000}将鼠标向右或向下移动似乎效果不错,但只要输入负整数,如-1,它会像以前一样移动鼠标大约3次,然后右键单击,但之后屏幕不会移动,就好像鼠标在按住右键单击后停止移动一样。也许你应该在问题中输入代码
mx := mx-1