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