返回正确的鼠标线的问题

时间:2019-07-18 23:35:32

标签: autohotkey

在此问题中,调用setXTowerLocation()时,出现一个消息框,而不是在退出消息框后调用函数getXCords()出现,在该函数中,一旦检测到其按下了getxCords(),它将连续扫描Lbutton的keyState函数返回鼠标软线的x值,然后在返回并在消息框中显示x软线之前,将其在setXTowerLocation()函数中设置为全局变量。每次我运行它时,消息框都会变成空白,我已经测试了代码的各个方面,而且它们似乎都可以单独工作,所以我认为这一定是语法错误吗?

结束消息框仅用于测试目的。在此先感谢:)

SendMode Input

Global xTowerLocation =

setXTowerLocation()
MsgBox, 0, MessageBox, %xTowerLocation%

getxCords()
{
    xCord = 
    Loop,
    {
        GetKeyState, state, Lbutton
        if(state = "D")
        {
            MouseGetPos, xx, yy
            xCord := %xx%
            return
        }
    }
return xCord
}

setXTowerLocation() {
    MsgBox, 0, MessageBox, Begin?
    IfMsgBox OK
        xTowerLocation := getxCords()
return
}

1 个答案:

答案 0 :(得分:1)

是的,xCord的语法错误引用到以内容命名的变量(鼠标坐标)。在getxCords()中修复这两行,以便xCord如下保存变量xx的值:

        xCord := xx
        return xCord

然后在以后的xCord(在函数末尾)没有return

编辑:为获得更多乐趣,请按以下步骤制作上面的xCord行:

        xCord := "x= " . xx . " , y= " . yy