我有一个AHK宏,它给了我一个通常不支持它的程序的水平滚动,它工作得很好,但它会进入窗口中的特定点,当我调整屏幕大小或更改分辨率时(我经常使用笔记本电脑和底座)它错过了水平滚动条。我正在使用相对定位,但它似乎是相对于窗口的左上角而不是相对于窗口的大小。我一直在尝试制作一个新的宏来解释这一点,但它仍然将指针发送到屏幕上的静态点,当我希望它是动态的,具体取决于窗口的高度和宽度。任何帮助,将不胜感激!提前致谢! - 内森
旧代码:
;Scroll right in Workplace AX
#IfWinactive WorkPlace AX
WheelRight:: ; to use
CoordMode, Mouse, Relative
MouseGetPos, px, py
Mousemove, 1000, 850, 0
Click Down, left
Mousemove, 1400, 850, 0
Click Up, left
Mousemove, px,py, 0
Sleep, 100
return
#IfWinactive
新宏:
;#IfWinactive WorkPlace AX
WinGetPos,X,Y,Width,Height,A
MPosX := (Width//2)
MPosY := (Height-2)
WheelLeft::
MouseGetPos, px, py
CoordMode, Mouse, Relative
MouseMove, %MPosX%, %MPosY%
return
答案 0 :(得分:0)
您的问题似乎是MPosX
和MPosY
设置了一次,并且每次使用WheelLeft时都不会检索。尝试将获取这些值的代码放入WheelLeft热键中。
#IfWinactive WorkPlace AX
WheelLeft::
WinGetPos,X,Y,Width,Height,A
MPosX := (Width//2)
MPosY := (Height-2)
MouseGetPos, px, py
CoordMode, Mouse, Relative
MouseMove, %MPosX%, %MPosY%
return