首页 > 解决方案 > 如何修复'If语句'总是用于'else'

问题描述

我有一个非常简单的“IfEqual”语句,总是指向“else”

我尝试了“If”语句,例如“If %GuiText1%=Var1”和“If (GuiText1 = Var1)”,但得到了相同的结果

Gui, Add, Button, x25 y8 cBlue vSA , Var1
Gui, Add, Button, x20 y8 cRed vSD , Var2
GuiControl, Hide, SD
Gui,Show

{
ControlGetText, GuiText1,, new.ahk    //to get the button-text from the window
msgbox, %GuiText1%    //to check if its the right variable
IfEqual, %GuiText1%, Var1
        {
        msgbox, 1
        }
    else
        {
        msgbox, 2
        }
}

它总是直奔“其他”

标签: autohotkey

解决方案


表达式中的变量名不包含在百分号中。

IfEqual, GuiText1, Var1  

IfEqual已弃用,不建议在新脚本中使用。改用If 语句

If GuiText1 = Var1   ; traditional mode

或者,甚至更好

If (GuiText1 = "Var1")   ; expressional mode 

推荐阅读