如何将从 GUI 接收到的变量与数字相乘?

How to multiply a variable received from a GUI with a number?

我正在尝试在 AutoHotKey 中制作一个非常简单的垃圾邮件发送者(只是为了和朋友一起玩)

(我最近才发现 autohotkey,我对编码很了解,所以欢迎任何 feedback/improvements,谢谢)

这是到目前为止的代码

#SingleInstance force 


^6::
Gui, Add, Text,  W200 +Center,"Message"
Gui, Add, Edit, W200 vTextt
Gui, Add, Text,  W200 +Center,"Number Of Messages"
Gui, Add, Edit, W200 vLooop
Gui, Add, Text,  W200 +Center,"Interval Between Messages"
Gui, Add, Edit, W200 vInterval


Gui, Add, Button, W200 gStart, Start Auto Spamming
Gui, Show
Return

Start:
Gui, Submit
Sleep, 5000
Loop, %Looop%
{   

    Send, %Textt% 
    Sleep, %Interval% * 1000
    Send, {Enter}
}
Gui, Destroy
Return
esc::exitapp

直到

它都可以正常工作
Sleep, %Interval% * 1000

这一行

当我 运行 脚本时,它提示我输入正确的 Gui 对于 vTextt,我输入了我的文本 对于 vLooop,我输入了循环次数 对于 vInterval,我输入 1(如 1 秒)(每条消息之间的延迟)

但是在 AutoHotKey 中 1 秒必须写成 1000(至少我是这样写的)

于是我在Sleep命令中将变量(vInterval)乘以1000,却弹出如下错误

我该怎么做才能解决这个问题?(不会发生延迟,消息会立即被垃圾邮件发送,没有任何延迟) 我已经厌倦了制作另一个变量,但我不知道变量在 autohotkey

中是如何工作的

提前致谢

当使用以数字作为输入的命令时(如 Sleep,您不需要将数字变量括在括号中,如 %var%(与 Send 接受文本输入,您需要在其中输入文本以消除歧义)

因此,您可以删除 Sleep, %Interval% * 1000Interval 变量周围的括号,这样您就可以得到 Sleep, Interval * 1000


最终代码:

#SingleInstance Force

^6::
Gui, Add, Text,  W200 +Center,"Message"
Gui, Add, Edit, W200 vTextt
Gui, Add, Text,  W200 +Center,"Number Of Messages"
Gui, Add, Edit, W200 vLooop
Gui, Add, Text,  W200 +Center,"Interval Between Messages"
Gui, Add, Edit, W200 vInterval


Gui, Add, Button, W200 gStart, Start Auto Spamming
Gui, Show
Return

Start:
Gui, Submit
Sleep, 5000
Loop, %Looop%
{   

    Send, %Textt% 
    Sleep, Interval * 1000
    Send, {Enter}
}
Gui, Destroy
Return
   
   
Esc::Exitapp