我需要一些帮助。我是VBS的新手,我想为我玩的视频游戏写一个机器人。
set sellAllTyping = wscript.CreateObject("WScript.Shell")
x= MsgBox ("To stop the bot, click OK. /// Coded by Vncz with a little help from StackOverflow! :^) RIP Yams ;-;",vbOK+vbInformation,"sell all Bot")
if x=vbOK then
' *** I don't know what to write here. ***
sellAllTyping.sendkeys "t"
wscript.sleep 1000
sellAllTyping.sendkeys "/sell all"
wscript.sleep 1000
sellAllTyping.sendkeys "{ENTER}"
wscript.sleep 5000
loop
如果我在传唤的消息框上按OK,我想在最底部停止循环。代替评论,我应该写什么代码,如果我甚至做得对吗?谢谢!
答案 0 :(得分:0)
我不知道您使用了哪个循环关键字。
之后使用以下任何一个关键字如果x = vbOK则 "退出/退出退出/退出功能"可能会帮助你
答案 1 :(得分:0)
不幸的是,msgbox冻结了执行。
换句话说,你不能在消息apear和你点击确定或取消的那一刻之间循环。
实现这一目标的唯一方法是制作一个这样的HTA文件:
<SCRIPT LANGUAGE="VBScript" src="test.vbs"> </SCRIPT>
<input type='button' value='Start' onclick='startLoop()'>
<input type='button' value='Stop' onclick='stopLoop()'>
然后,在链接的vbs文件上(对于这个例子,它是test.vbs),你必须写这样的东西:
set sellAllTyping = CreateObject("Wscript.shell")
loopState = true
sub startLoop()
do while loopState = true
msgbox "yeah"
loop
end sub
sub stopLoop()
loopState = false
end sub
现在唯一的问题是应用程序因为循环而冻结(如果我用sendkeys替换msgbox)或者总是隐藏在msgbox后面。
此代码运行良好(具有睡眠功能):
set sellAllTyping = CreateObject("Wscript.shell")
loopState = true
sub startLoop()
do while loopState = true
msgbox "yeah"
sleep(2)
loop
end sub
sub stopLoop()
loopState = false
end sub
Sub sleep (Timesec)
sellAllTyping.Run "Timeout /T " & Timesec & " /nobreak" ,0 ,true
End Sub
确保将hta文件命名为“something.hta”而不是“something.html”