創建可能字符串列表然後讓熱鍵隨機輸入其中一個字符串的最簡單方法是什麼?AutoHotKey:熱鍵隨機選擇幾個預選字符串中的一個
以說明的方式,在蟒蛇這將是...
random.choice(["Hi, dork.", "Hello, titmouse.", "Greetings, ass.", "Sup, barnacle."])
創建可能字符串列表然後讓熱鍵隨機輸入其中一個字符串的最簡單方法是什麼?AutoHotKey:熱鍵隨機選擇幾個預選字符串中的一個
以說明的方式,在蟒蛇這將是...
random.choice(["Hi, dork.", "Hello, titmouse.", "Greetings, ass.", "Sup, barnacle."])
方式一:
F2::
Values = pick,one of,these,choices
StringSplit, ValueArray, Values, `,
Random, rand, 1, 4
SendInput % ValueArray%rand%
我還沒有找到一個很好的方式來獲得數組的大小。
如果您需要處理每個列表項中的逗號,則可以使用單獨的分隔符。
F2::
list := "Hi, dork.;Hello, titmouse.;Greetings, ass.;Sup, barnacle."
listsize := list#items(list, ";")
Random, rand, 1, %listsize%
MsgBox, % listGet(list, rand, ";")
return
; return item at said position in said list
listGet(list,pos=1,del=",") {
StringSplit, item, list, %del%
return item%pos%
}
; returns # of items
list#items(list, del=",") {
ifEqual, list,, return 0
StringReplace, var, list, % del,, useErrorLevel
return ErrorLevel+1
}
多個列表操作函數在這裏: http://www.autohotkey.com/forum/topic3195.html
試試這個
Voice := ComObjCreate("SAPI.SpVoice")
F2:: ;Press F2
Random, rand, 1, 4
goto, %rand%
1:
Voice.Speak("number 1")
; Or you can use send 1
return
2:
Voice.Speak("number 2?")
return
3:
Voice.Speak("number 3")
return
4:
Voice.Speak("number 4")
return
大。謝謝。快速'ñ'骯髒的工作現在就好了。 我的字符串(幸運的)都沒有逗號,所以有一個函數可以計算字符串中字符的出現次數,即逗號+ 1 =數組大小? – MockWhy 2011-05-30 00:11:34
製作副本和使用RegExReplace(它給出一個計數)或使用像TF這樣的擴展庫的缺點,我還沒找到。 – TrueWill 2011-05-30 00:54:28