我想为我玩的视频游戏编写一个机器人来打字。
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
如果我在调用的消息框中按“确定”,我希望循环位于最底部。如果我做得正确的话,我应该编写什么代码来代替注释?
不幸的是,msgbox 冻结了执行。
换句话说,您不能在消息出现的时刻和单击“确定”或“取消”的时刻之间循环。
实现此目的的唯一方法是制作如下 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”
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)