如何将从 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% * 1000
中 Interval
变量周围的括号,这样您就可以得到 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
我正在尝试在 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% * 1000
中 Interval
变量周围的括号,这样您就可以得到 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