^+a::
soundset +8
soundget vol
tooltip % "volume = " round(vol), 1900, 1000
settimer, removetooltip1, -3000
return
removetooltip1:
tooltip
return
^+s::
soundset -8
soundget vol
tooltip % "volume = " round(vol), 1900, 1000
settimer, removetooltip2, -3000
return
removetooltip2:
tooltip
return
^+c::
soundset, +1,, mute
soundget, mutestate, master, mute
if mutestate=on
tooltip sound = off, 1900, 1000
else
tooltip sound = on, 1900, 1000
settimer, removetooltip3, -3000
return
removetooltip3:
tooltip
return
使用此脚本,当您使用热键更改音量或静音时,会弹出小工具提示,告知当前音量或静音/取消静音状态。
它的工作没有任何问题,但我想知道是否可以将其中三个结合起来,也许只使用一次 settimer 以避免不必要的(如果有的话)重复?
也许是这样的
(
^+a::
....
....
^+s::
....
....
^+c::
....
....
)
settimer, removetooltip, -3000
return
removetooltip:
tooltip
return
正如你所见,我显然是菜鸟。我需要帮助:)
您只需要一个计时器即可删除工具提示:
^+a::
soundset +8
soundget vol
tooltip % "volume = " round(vol), 1900, 1000
settimer, removetooltip, -3000
return
^+s::
soundset -8
soundget vol
tooltip % "volume = " round(vol), 1900, 1000
settimer, removetooltip, -3000
return
^+c::
soundset, +1,, mute
soundget, mutestate, master, mute
if mutestate=on
tooltip sound = off, 1900, 1000
else
tooltip sound = on, 1900, 1000
settimer, removetooltip, -3000
return
removetooltip:
tooltip
return
我的做法是这样的:
^+a::
^+s::
SoundSet, (A_ThisHotkey ~= "a$" ? "+" : "-") 8
SoundGet, vol
DisplayToolTip("volume = " round(vol))
SetTimer, RemoveTooltip, -3000
return
^+c::
SoundSet, +1, , mute
SoundGet, mutestate, master, mute
DisplayToolTip("sound = " (mutestate = "on" ? "off" : "on"))
SetTimer, RemoveTooltip, -3000
return
DisplayToolTip(msg, duration := 3000, x := 1900, y := 1000)
{
ToolTip, % msg, % x, % y
SetTimer, RemoveTooltip, % duration * -1
}
RemoveTooltip()
{
ToolTip
}
基本上利用ternaries来消除重复的代码。
您可能想知道
A_ThisHotkey ~= "a$"
是什么。~=
(docs) 是正则表达式简写,在正则表达式中我们检查最后一个字符是否是 a。SubStr(A_ThisHotkey, 0) = "a"
,如果你愿意的话。