Random 自动热键:热键随机选择几个预先选择的字符串之一

Random 自动热键:热键随机选择几个预先选择的字符串之一,random,autohotkey,Random,Autohotkey,创建可能的字符串列表,然后让热键随机键入其中一个字符串的最简单方法是什么 作为解释,在python中它将是 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

创建可能的字符串列表,然后让热键随机键入其中一个字符串的最简单方法是什么

作为解释,在python中它将是

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
}
此处有更多列表操作功能: 试试这个

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=arraysize?除了制作副本和使用RegExReplace(它提供了一个计数)或使用TF之类的扩展库之外,我还没有找到一个。