【问题标题】:How do I open multiple message boxes in vbs?如何在vbs中打开多个消息框?
【发布时间】:2013-08-09 14:00:33
【问题描述】:

我知道如果你输入

Do

msgbox("This is a msg box")

loop

然后会弹出一个不会消失的消息框。

我想要多个您可以关闭的消息框。

我该怎么做?

【问题讨论】:

  • 你不能在 vanilla VBScript 中做到这一点,你为什么要这样做?

标签: vbscript modal-dialog message msgbox


【解决方案1】:

警告:您可能会遇到严重的延迟和/或崩溃。如果您选择继续,我不对任何损害负责。

您可以制作多次打开同一个 VBS 脚本的批处理文件。 制作记事本:

msgbox("YourTextHere")

或者如果你想循环它:

do
msgbox("YourTextHere")
loop

用你想要的任何东西替换 YourTextHere。

然后保存为.vbs

然后制作另一个记事本:

start "MessageBox" "MessageBox.vbs"

将“MessageBox”更改为您制作的消息框 VBS 的名称。

多次复制并粘贴相同的脚本以多次打开它(这样做需要您自担风险,您可能会遇到严重的延迟)​​。

然后保存为.bat

或者多次添加批处理文件本身,这样它就可以创建一个打开批处理文件的循环,从而可以从中打开更多脚本。 (这样做需要您自担风险,您可能会遇到严重的延迟)​​。

例如:

start "BatchFile" "Batchfile.bat"

将“BatchFile”更改为您创建的批处理文件的名称。

复制并粘贴多次以再次打开它(这样做需要您自担风险,您可能会遇到严重的延迟)​​。

到目前为止,您还好,因为您没有打开 .bat 文件。如果您尝试对其进行测试,它将打开您的 .bat 文件和消息框的多个实例,然后从新实例中打开更多实例,然后从更新的实例中打开更多实例,并重复足以使您的 PC 崩溃或滞后.

【讨论】:

    【解决方案2】:

    您想寻找非模态对话框。您在此处弹出的消息框是模态的,这就是它们一个接一个出现的原因(对话框打开时暂停执行)。

    你可以在网上找到这方面的参考资料。

    Func _NoHaltMsgBox($code=0, $title = "",$text = "" ,$timeout = 0)
      Run (@AutoItExe & ' /AutoIt3ExecuteLine  "MsgBox(' & $code & ', '''& $title & ''', '''& $text &''',' & $timeout & ')"')
    EndFunc
    

    【讨论】:

      【解决方案3】:

      如果您不想使用批处理文件,请尝试以下操作:
      第 1 步 - 错误消息
      假设您想要a=msgbox("messageboxtext")。因此,在记事本中,您将编写 a=msgbox("messageboxtext") 并将其保存为 .vbs 文件。
      第 2 步 - 垃圾邮件发送者
      无限
      在一个新的记事本文档中,粘贴以下内容:

      set shell = createobject("wscript.shell")
      count = "hello world"
      do until count = 1
      shell.run("""C:\Users\user\Documents\error.vbs""")
      loop
      

      将 C:\Users\user\Documents\error.vbs 替换为文件的位置。将其保存为 .vbs 文件。
      有限
      要打开有限数量的窗口,请使用以下代码:

      set shell = createobject("wscript.shell")
      count = 0
      do until count = 5
      shell.run("""C:\Users\user\Documents\error.vbs""")
      loop
      

      将 5 替换为您希望消息产生的次数。

      享受吧!

      【讨论】:

        【解决方案4】:

        您需要一个多按钮MsgBox,然后将其设置为一个值:如果按下CANCEL,则该过程将停止。

        Do
        spam=MsgBox("SPAM",3)
        If spam = 2 Then
        WScript.Quit
        End If
        Loop
        

        【讨论】:

          【解决方案5】:
          1. 首先创建一个名为“anything.vbs”的文件,用您想要的任何内容替换任何内容。
          2. 然后编辑并放入代码
          msgbox("LOL")
          loop"
          
          1. 用你喜欢的任何东西替换 LOL。
          2. 然后制作一个 .bat 文件。
          3. 输入代码
          start "LOL.bat"
          loop"
          

          现在您有了垃圾邮件发送者。 :)

          【讨论】:

            猜你喜欢
            • 2021-03-16
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多