Autohotkey 与自动热键中的另一个变量不同的随机变量

Autohotkey 与自动热键中的另一个变量不同的随机变量,autohotkey,Autohotkey,我希望能够一个接一个地打印随机变量,而无需重复。以下是我尝试过的: Random WINa1, 1,4 SendInput, va%WINa1% Loop, { Random WINa2, 1,4 } Until %WINa2% not %WINa1% SendInput, vb%WINa2% 然而,我想我一定是用了,直到错了? 因为第一部分会起作用,但是它会卡在循环中吗 这里的问题是试图在一些只接受更新和更好的表达式语法的东西中使用遗留语法,并且误用遗留而不是 传统的NOT

我希望能够一个接一个地打印随机变量,而无需重复。以下是我尝试过的:

   Random WINa1, 1,4
SendInput, va%WINa1%
Loop, 
{
    Random WINa2, 1,4
 } Until %WINa2% not %WINa1%
SendInput, vb%WINa2%
然而,我想我一定是用了
,直到
错了?

因为第一部分会起作用,但是它会卡在循环中吗

这里的问题是试图在一些只接受更新和更好的表达式语法的东西中使用遗留语法,并且误用遗留
而不是

传统的
NOT
运算符不是一个不等于运算符,因此它在这里不起作用。
但无论如何,让我们摆脱所有这些遗留的东西,用正确的方式去做

Random WINa1, 1,4
SendInput, % "va" WINa1
Loop
    Random WINa2, 1,4
Until (WINa2 != WINa1)
SendInput, % "vb" WINa2
我还切换到SendInputs上的表达式语法,这并不是真的需要,但你永远也不会发现我在使用传统语法,现在已经不是2008年了。
还省略了括号,因为1liner语句中不需要括号

因此,我们转而使用(不等于)运算符,并在语句周围添加了括号。在这个例子中,括号在技术上是不需要的,但它们通常表示我们处于表达式模式,所以我认为在这里使用括号是一种很好的做法

要了解有关AHK脚本语言(传统与表达式)的更多信息,请从这里开始: