放大当前 Window,恢复旧 Window 之前的大小和位置

Zoom in Current Window, Restore Previous Size and Position of the Old Window

我正在尝试构建一个简单的脚本,基本上是:

  1. 检查活动window是否在一段时间内发生变化
  2. 如果有变化
    一种。我想让鼠标下的window调整大小并移动
    b.恢复上次缩放的位置window(所以我当时只能缩放一个window)

我写了这个简单的脚本,但我遗漏了一些东西,windows 正在闪烁我不知道为什么

#NoEnv
#Persistent
SetTitleMatchMode, 2

SetTimer, tableDiff, 1000

firstRun := 0
return

tableDiff:
if (firstRun <> 0)
    {
    winUnderMouseLast := winUnderMouseCurrent
    WinGetTitle, titleLast, ahk_id %winUnderMouseLast%
    WinGetClass, classLast, ahk_id %winUnderMouseLast%
    WinGetPos, xLast, yLast, wLast, hLast, ahk_id %winUnderMouseLast%
    }
else
msgbox, 1st run


MouseGetPos,,,winUnderMouseCurrent
WinGetTitle, titleCurrent, ahk_id %winUnderMouseCurrent%
WinGetClass, classCurrent, ahk_id %winUnderMouseCurrent%
WinGetPos, xCurrent, yCurrent, wCurrent, hCurrent, ahk_id %winUnderMouseCurrent%

If (winUnderMouseLast != winUnderMouseCurrent)
 {
    winMove, ahk_id %winUnderMouseLast%,,%xLast%,%yLast%

    ;msgbox, Current %titleCurrent%  Last %titleLast%
    WinMove, ahk_id %winUnderMouseCurrent%,, 421, 156, 1016, 727

 }

firstRun := 1
return

使用WinWaitNotActive代替计时器:

loop {
    winwaitnotactive, % "ahk_id " winExist("A")
    mousegetpos,,,id

    if (lastID)
        winmove, ahk_id %lastID%,, x,y,w,h

    wingetpos, x,y,w,h, ahk_id %id%
    winmove, ahk_id %id%,, 421, 156, 1016, 727
    lastID := id
}