AutoHotKey错误“变量名称包含非法字符”100.000000“

时间:2014-06-03 20:00:36

标签: autohotkey

我正在制作一个AutoHotKey脚本,以便我的媒体无键盘上有媒体键。 所有的快捷方式都有效,但是我想制作一个将音量设置为最大的快捷方式,除非它已经存在,在这种情况下它会将其设置为10。 这是我的脚本:

    SoundGet, master_volume

    ^!Down::SendInput {Media_Play_Pause}
    ^!Left::SendInput {Media_Prev}
    ^!Right::SendInput {Media_Next}
    ^!Up::SendInput {Media_Stop}
    ^!+Down::SendInput {Volume_Mute}
    ^!+Left::SendInput {Volume_Down}
    ^!+Right::SendInput {Volume_Up}
    ^!+Up::if (%master_volume% = 100) {
            SoundSet, 10
        } else {
            SoundSet, 100
        }

但我一直收到错误"错误:以下变量名称包含非法字符:" 100.000000"" (100.000000是我的音量设置的,例如,如果它设置为最大值的一半,它将读取50.000000)并突出显示" if(%master_volume%= 100)"线...
我对AutoHotKey很陌生,但我已经阅读了很多(我认为的)相关文档并且无法弄清楚

2 个答案:

答案 0 :(得分:3)

错误来自您使用'%master_volume%'的方式。考虑一下:

执行此操作时:

somevariable = george

somevariable的值设置为“george”

但是当你这样做时:

%somevariable% = george

变量名称设置为“george”

这意味着当你这样做时:

%master_volume% = 100

您正在使用variable_name并将其转换为变量。实际上,您正在尝试创建一个名为100.000000的变量,并为其赋值100

由于master_volume100.000000,因此您无法在变量名称中使用.,因此它是非法的。

但是,如果你使用了SetFormat, "D", 0,那么你会强制你的小数点没有任何浮点数(没有.000000)然后你就可以用100创建一个变量}或75master_volume的任何值恰好是。

但是,您可能希望它以这种方式工作。您应该使用alpha bravo提出的简单答案,并使用:

master_volume = 100

答案 1 :(得分:1)

这应该有效

  

^!+向上::
  if(master_volume = 100){
      SoundSet,10
  其他{
      SoundSet,100
  }
  返回

删除%'s的“master_volume”