【问题标题】:Snapping Windows 4 to a screen with the mouse, one at a time使用鼠标将 Windows 4 捕捉到屏幕,一次一个
【发布时间】:2015-01-16 02:02:47
【问题描述】:

我想在松开鼠标移动的窗口之前通过右键单击将窗口捕捉到屏幕的角落(四分之一)。我目前正在努力让活动窗口移动。对于 LEFT 屏幕,我可以让记事本在左上角移动,但是当释放鼠标按钮时它会弹回原来的位置;而且我必须按名称来称呼它——我希望它可以与任何活动窗口一起使用。想法?

~Lbutton & ~Rbutton::

CoordMode,Mouse,Screen  ;mouse position relative to the screen
MouseGetPos,Xpos,Ypos   ;get mouse position coordinates
;WinGet, active_id, ID, A
;msgbox %Xpos%,%Ypos%   ;show the saved mouse coordinates 

RIGHT_height=537
RIGHT_width=848
RIGHT_leftpos=1680
RIGHT_rightpos=2523
RIGHT_toppos=-70
RIGHT_vp=460    

LEFT_height=518
LEFT_width=847
LEFT_leftpos=-8
LEFT_rightpos=834
LEFT_toppos=-10
LEFT_vp=503

;LEFT SCREEN
if (Xpos < LEFT_rightpos and ypos < LEFT_vp) {  ;LEFT top left
    WinMove,Untitled - Notepad,,%LEFT_leftpos%,%LEFT_toppos%,%LEFT_width%,%LEFT_height%

}

if (Xpos > LEFT_rightpos and Xpos < 1680 and ypos < LEFT_vp) {  ;LEFT top right
    MsgBox LEFT top right
}

if (Xpos < LEFT_rightpos and Xpos < 1680 and ypos > LEFT_vp) {  ;LEFT top right
msgbox LEFT Bottom Left
}

if (Xpos > LEFT_rightpos and Xpos < 1680 and ypos > LEFT_vp) {  ;LEFT top right
msgbox LEFT Bottom Right
}

;RIGHT SCREEN
if (Xpos < RIGHT_rightpos and Xpos >= 1680 and ypos < RIGHT_vp) {   ;RIGHT top left
msgbox RIGHT Top Left
}

if (Xpos > RIGHT_rightpos and Xpos >= 1680 and ypos < RIGHT_vp) {   ;RIGHT top right
msgbox RIGHT Top Right
}

if (Xpos < RIGHT_rightpos and Xpos >= 1680 and ypos > RIGHT_vp) {   ;RIGHT top right
msgbox RIGHT Bottom Left
}

if (Xpos > RIGHT_rightpos and Xpos >= 1680 and ypos > RIGHT_vp) {   ;RIGHT top right
msgbox RIGHT Bottom Right
}

返回

【问题讨论】:

标签: autohotkey


【解决方案1】:

你需要添加

Send, {LButton Up}

在您的代码中。这可以防止 LButton 在热键操作完成时接管窗口。

要将WinMoveahk_id 一起使用,您必须将其放入WinMove 命令中。见下文。

~LButton & ~RButton::
    CoordMode,Mouse,Screen 
    MouseGetPos,Xpos,Ypos   
    WinGet, active_id, ID, A ; use active_id in WinMove
    Send, {LButton Up} ; Prevents window from snapping back


    RIGHT_height=537
    RIGHT_width=848
    RIGHT_leftpos=1680
    RIGHT_rightpos=2523
    RIGHT_toppos=-70
    RIGHT_vp=460    

    LEFT_height=518
    LEFT_width=847
    LEFT_leftpos=-8
    LEFT_rightpos=834
    LEFT_toppos=-10
    LEFT_vp=503

    ;LEFT SCREEN
    if (Xpos < LEFT_rightpos and ypos < LEFT_vp) {  ;LEFT top left
        WinMove,ahk_id %active_id%,,%LEFT_leftpos%,%LEFT_toppos%,%LEFT_width%,%LEFT_height%

    }

    if (Xpos > LEFT_rightpos and Xpos < 1680 and ypos < LEFT_vp) {  ;LEFT top right
        MsgBox LEFT top right
    }

    if (Xpos < LEFT_rightpos and Xpos < 1680 and ypos > LEFT_vp) {  ;LEFT top right
    msgbox LEFT Bottom Left
    }
Return

【讨论】:

  • 你,我的朋友,是一位绅士和一位学者。非常感谢,很好用!我现在必须弄清楚如何不显示右键单击菜单(覆盖本机右键单击)。如果您对此有想法,那就完美了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-03-22
  • 2013-09-22
  • 2014-02-09
  • 1970-01-01
  • 1970-01-01
  • 2016-05-28
  • 2012-05-05
相关资源
最近更新 更多