ahk保持鼠标水平或竖直移动
在画图软件中要进行图片水平拼接,不奢求无缝对接,但希望两者保持水平,用鼠标移动第二张图片很难保持水平移动,用键盘右键又太慢了,于是写了一个保持鼠标水平/竖直移动的脚本。应用场景除了画图软件中水平/竖直移动选中图片外,还可以画水平线/竖直线。
具体思路是:
当鼠标右键按下时,记录当前鼠标位置为起点,弹出提示条显示起点坐标。
当再次右键按下时,计算鼠标移动的横纵距离,如果横向移动更多,则将终点纵坐标与起点纵坐标相等;否则将终点横坐标与起点横坐标相等。然后以起点和终点坐标为参数,用鼠标左键进行拖动,并在终点位置弹出提示条显示终点坐标。
有两个小技巧:
用 #IfWinActive ahk_exe mspaint.exe … #IfWinActive 包围的代码只有在特定窗口mspaint.exe(画图软件)中才会生效,防止在其他软件中误操作或产生干扰。
^q::
ExitApp
return
当按下 Ctrl Q 时退出程序,因为此时鼠标右键已不可用。同时Ctrl Q也是SciTE注释的快捷键,所以方便退出程序后直接编辑代码。
lxpos := 0
lypos := 0 ; 上个点的位置
markA := 0 ; 鼠标拖动是否已有起点
#IfWinActive ahk_exe mspaint.exe
RButton::
MouseGetPos, xpos, ypos
if (markA = 0) {
lxpos := xpos
lypos := ypos
markA := 1
ToolTip, 起点 (%lxpos%`, %lypos%), xpos - 140, ypos - 30
SetTimer, RemoveToolTipOnTop, 1000
} else {
xdiff := Abs(xpos - lxpos)
ydiff := Abs(ypos - lypos)
if (xdiff <= ydiff) {
; 沿y轴移动
xpos:=lxpos
} else {
; 沿x轴移动
ypos:=lypos
}
Sleep,200
MouseClickDrag, Left, lxpos, lypos, xpos, ypos
markA := 0
Sleep,200
ToolTip, 终点 (%xpos%`, %ypos%), xpos 10, ypos 10
SetTimer, RemoveToolTipOnTop, 1000
}
return
#IfWinActive
RemoveToolTipOnTop:
SetTimer, RemoveToolTipOnTop, Off
ToolTip
return
^q::
MsgBox,,,退出,.5
ExitApp
return
效果:
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhhijceh
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
微信运动停用后别人还能看到步数吗
PHP中文网 07-22 -
excel打印预览压线压字怎么办
PHP中文网 06-22