【问题标题】:autohotkey if statement with and without curly braces带和不带花括号的自动热键 if 语句
【发布时间】:2018-03-27 07:49:12
【问题描述】:

我不明白 Autohotkey 的 IfIf(...) 之间的区别
根据我发现的所有内容,If(...) 的行为符合“预期”,但我的代码有些东西无法正常工作。

低于不起作用。似乎从未评估过If 中的语句,从未设置过%TimeString%,也没有任何输出:

CapsLock & T::
    Input Key, L1
    If (Key=T)
    {
        FormatTime, TimeString,, HHmm
    }
    Send %TimeString%   

下面是否工作,%TimeString%被设置,时间被输出。

CapsLock & T::
    Input Key, L1
    If Key=T
        FormatTime, TimeString,, HHmm
    Send %TimeString%   

【问题讨论】:

    标签: autohotkey


    【解决方案1】:

    Autohotkey 有两种不同的语法:legacyexpression。这也会影响if statement

    当你使用括号时,if (expression) 被使用,Key变量 比较 T 不存在并且与不等于 T 的空变量。您需要将其更改为If (Key="T"),然后它将变量Key 与字符串"T" 进行比较,它将起作用。

    在第二种情况下,您使用的是传统的(旧版)If,它将变量 Key 与字符串 T 进行比较,因为它们相等,所以它可以工作。

    花括号 { } 只是定义一个块,当你的块只包含一行时,它们什么都不做,也不做任何改变。

    【讨论】:

    • v2。它处于永久 Alpha 版,但可用。
    【解决方案2】:

    您确定此代码与您的脚本相同吗?因为

    Tjs := T
    if (Tjs=T)
    {
       MsgBox true
    }
    

    对我来说很好。

    【讨论】:

      猜你喜欢
      • 2017-06-14
      • 1970-01-01
      • 2012-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-03
      • 2023-01-16
      • 2012-11-22
      相关资源
      最近更新 更多