我还在制作这个VBScript脚本,为我玩的视频游戏输入内容。我之所以仍在努力,是因为我无法找到一种用户友好的方式来阻止最底部的循环( Ctrl + F 并输入Do While
)。除了这个愚蠢的循环外,每一件事都有效。
我尝试制作仅pause
的批处理脚本,并检查cmd.exe
的流程,但由于某种原因这种情况并不奏效。如果你能弄清楚,我更喜欢那样做结束循环。但是,我并不十分关心你这样做的方式,只要它有点用户友好(在任务管理器中手动结束wscript.exe
进程显然不是用户友好的)。
Set objC = WScript.CreateObject ("WScript.Shell")
Sub sleep(Timesec)
objC.Run "Timeout /T " & Timesec & " /nobreak", 0, True
End Sub
sleep(1)
objA = False
objH = False
objF = MsgBox("The Sell All Script that is a meme. By Vncz. Start?", 68, "Hello!")
Function chatsMessageBox()
Do
MsgBox "No."
Loop
End Function
If objF = vbYes Then
objB = InputBox("What is the username for your alt to pay? ALL LOWERCASE PLEASE, and '+(-)' for underscores.", "Username to pay")
Else
End If
If objB = "" Then
objH = True
Else
xdddddddddddddd = MsgBox("Press OK to check the username.", 64, "Check Username")
End If
If objF = vbNo Then
objH = True
MsgBox "Canceled."
Else
End If
If objH = True Then
objA = False
ElseIf objB = "chatshitgetsplit" Then
objD = MsgBox("No.", "16", "No.")
Else
objE = MsgBox("Press OK to start the loop; run stop.bat to stop the loop.", 64, "You're in!")
End If
If objD = vbOK Then
chatsMessageBox()
Else
End If
If objE = vbOK Then
objA = True
Else
End If
'[]
'In place of this comment, stop the loop somehow (If something, objA = False)
'[]
Do While objA = True
sleep(5)
objC.SendKeys "t"
sleep(1)
objC.SendKeys "/sell all"
sleep(1)
objC.SendKeys "~"
sleep(5)
objC.SendKeys "t"
sleep(1)
objC.SendKeys "/pay " & objB & " 10000"
sleep(1)
objC.SendKeys "~"
Loop
答案 0 :(得分:1)
在Do While循环中,放置如下代码:
If <your condition> Then Exit Do
答案 1 :(得分:1)
最佳解决方案是在满足特定条件后默认编辑该循环以结束。快速浏览一下,无论如何,我都看不到该循环的退出。它只会继续睡觉和发送密钥。这真的是你想要的吗?
1)您是否应该只迭代该循环一次?如果是这种情况,没有理由循环。
2)如果您知道要迭代这些步骤的次数,则可以使用计数器。例如:
Dim i as Integer
i = 0
Do Until i = 5
'rest of code'
i = i + 1
Loop
这将允许您循环设定的次数。
让它在objA = True
时循环,并且在循环期间从不查看objA
或调用另一个函数/ sub,它将不会变为chnage。
3)如果你只是想在完成某件事后退出你的循环而你知道那是什么,你也可以在循环中做一个if
语句。
Do While objA = True
'rest of code'
If <condition> = True Then Exit Do
Loop