我正在制作一个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很陌生,但我已经阅读了很多(我认为的)相关文档并且无法弄清楚
答案 0 :(得分:3)
错误来自您使用'%master_volume%'的方式。考虑一下:
执行此操作时:
somevariable = george
somevariable
的值设置为“george”
但是当你这样做时:
%somevariable% = george
变量名称设置为“george”
这意味着当你这样做时:
%master_volume% = 100
您正在使用variable_name
的值并将其转换为变量。实际上,您正在尝试创建一个名为100.000000
的变量,并为其赋值100
。
由于master_volume
的值为100.000000
,因此您无法在变量名称中使用.
,因此它是非法的。
但是,如果你使用了SetFormat, "D", 0
,那么你会强制你的小数点没有任何浮点数(没有.000000
)然后你就可以用100
创建一个变量}或75
或master_volume
的任何值恰好是。
但是,您可能不希望它以这种方式工作。您应该使用alpha bravo提出的简单答案,并使用:
master_volume = 100
答案 1 :(得分:1)
这应该有效
^!+向上::
if(master_volume = 100){
SoundSet,10
其他{
SoundSet,100
}
返回
删除%'s的“master_volume”