gpt4 book ai didi

vbscript - 执行时显示消息对话框

转载 作者:行者123 更新时间:2023-12-02 11:26:59 25 4
gpt4 key购买 nike

我在 vbscript 中使用这个片段:

Set WSH = CreateObject("WScript.Shell")
cmd = "some command"
flag = WSH.Run(cmd, 0, true)

可以注意到,在 .Run()调用,“WaitOnReturn”设置为“true”,因为我想知道外部程序何时完成以及它的状态

问题是外部程序需要一些时间才能完成,我想弹出“请稍候...”MsgBox 但我不能这样,因为我将“WaitOnReturn”设置为“true”,因为我需要该程序的结果用于额外处理

有没有办法在执行外部程序时以某种方式显示这个 MsgBox?

最佳答案

抱歉,我突然想到我可以在执行 Run() 之前调用 MsgBox
:尴尬的:

编辑:

这里没有用户交互是一种解决方法(取自 http://www.robvanderwoude.com/vbstech_ui_progress.php)

Function ProgressMsg( strMessage, strWindowTitle )
' Written by Denis St-Pierre
Set wshShell = WScript.CreateObject( "WScript.Shell" )
strTEMP = wshShell.ExpandEnvironmentStrings( "%TEMP%" )
If strMessage = "" Then
On Error Resume Next
objProgressMsg.Terminate( )
On Error Goto 0
Exit Function
End If
Set objFSO = CreateObject("Scripting.FileSystemObject")
strTempVBS = strTEMP + "\" & "Message.vbs"

Set objTempMessage = objFSO.CreateTextFile( strTempVBS, True )
objTempMessage.WriteLine( "MsgBox""" & strMessage & """, 4096, """ & strWindowTitle & """" )
objTempMessage.Close

On Error Resume Next
objProgressMsg.Terminate( )
On Error Goto 0

Set objProgressMsg = WshShell.Exec( "%windir%\system32\wscript.exe " & strTempVBS )

Set wshShell = Nothing
Set objFSO = Nothing
End Function

然后调用它:
ProgressMsg "Installing, Please wait.", "Some title"
结束它:
ProgressMsg "", "Some title"

关于vbscript - 执行时显示消息对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8575588/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com