Noob问题:AutoHotKey窗口调整大小和分辨率

时间:2013-12-03 20:12:40

标签: positioning autohotkey relative

我有一个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

1 个答案:

答案 0 :(得分:0)

您的问题似乎是MPosXMPosY设置了一次,并且每次使用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