脚本为什么不能正确地从%SetWidth%和%SetHeight%中读取变量数据?

时间:2018-08-18 06:46:54

标签: autohotkey

当我将它们替换为数字时,脚本可以正常工作。但是为了简化起见,我想在脚本顶部定义几个变量(SetWidth和SetHeight),并根据需要在整个过程中调用它们。除了,由于某种原因,当我尝试调用它们时,它似乎无法正常工作。

std::optional

1 个答案:

答案 0 :(得分:2)

要访问函数中的全局变量,您需要

在函数中添加global

CenterWindow(WinTitle){
    global
    WinGetPos,xx,yy, winx, winy, %WinTitle%
    x1 := xx + winx/2
    y1 := yy + winy/2
    loop 2
    { 
    y1 := yy + winy/2
        loop 2
        { 
            if ((A_ScreenWidth/2 = x1) && (A_ScreenHeight/2 = y1) && (winx := SetWidth) && (winy = SetHeight)) 
            {
                msgbox got em
            return
            }
            else
            y1 := y1 + 0.5
        }
    x1 := x1 + 0.5
    }
    WinMove, %WinTitle%,, 0, 0, SetWidth, SetHeight
    WinGetPos,,, winx, winy, %WinTitle%
    Sleep, 100
    WinMove, %WinTitle%,, (A_ScreenWidth/2)-(winx/2), (A_ScreenHeight/2)-(winy/2)
}

或在函数外部(在自动执行部分或在热键/热字符串/或其他函数中)将变量声明为超全局变量,方法是在变量之前添加global

global SetWidth := "1616"
global SetHeight := "939"

有关更多详细信息,请阅读 Local and Global Variables