SetTimer 的高级用法使用不同的参数调用相同的函数
这是一个标签无法实现的例子。如果你同时多次执行相同的标签并且它们依赖于在其中定义的变量,则它们很可能会干扰并导致意外行为。
以下是如何使用函数执行此操作:
; This script will switch between showing "Hello 1" and "Hello 2"
#Persistent
DisplayMessage_Hello1 := Func("DisplayMessage").bind("Hello 1")
SetTimer, %DisplayMessage_Hello1%, 2000
Sleep, 1000
DisplayMessage_Hello2 := Func("DisplayMessage").bind("Hello 2")
SetTimer, %DisplayMessage_Hello2%, 2000
DisplayMessage(messageToDisplay) {
TrayTip ; remove other traytips
TrayTip, Message to display:, %messageToDisplay%
}
这是不怎么做 (带标签):
;This script will never display the message "Hello 1". It will always show "Hello 2".
#Persistent
messageToDisplay := "Hello 1"
SetTimer, DisplayMessage, 2000
Sleep, 1000
messageToDisplay := "Hello 2"
SetTimer, DisplayMessage, 2000
DisplayMessage:
TrayTip ; remove other traytips
TrayTip, Message to display:, %messageToDisplay%
Return