Vbscript Msgbox弹出超时

Vbscript Msgbox弹出超时,vbscript,autohotkey,msgbox,Vbscript,Autohotkey,Msgbox,我有一个运行的小脚本(基本上是启动一个msgbox来告诉人们他们的帐户密码即将过期) 我希望它在30分钟后自动关闭,但无法正确使用语法,有人能帮忙吗 下面是调用msgbox的部分 if (daysLeft < warningDays) and (daysLeft > -1) then Msgbox "Your Password Expires in " & daysLeft & " day(s)" & " at " & whenPasswordExp

我有一个运行的小脚本(基本上是启动一个msgbox来告诉人们他们的帐户密码即将过期)

我希望它在30分钟后自动关闭,但无法正确使用语法,有人能帮忙吗

下面是调用msgbox的部分

if (daysLeft < warningDays) and (daysLeft > -1) then

Msgbox "Your Password Expires in " & daysLeft & " day(s)" & " at " & whenPasswordExpires & chr(13) & chr(13) & "Please ensure that you change your password before" & chr(13) & "its expiry time to prevent any disruption of service.", 4144, "PASSWORD EXPIRATION WARNING!"

End if
如果(daysLeft-1),则
Msgbox“您的密码将在”&daysLeft&“day(s)”&“在”&whenPasswordExpires&chr(13)&chr(13)&chr(13)&“请确保您在”&chr(13)&chr(13)&chr(13)&chr(13)&chr(13)&chr(13)&chr)之前更改密码,以防止服务中断。”,4144,“密码过期警告!”
如果结束
--


Gavin。

你不能这样做,你需要使用自己的自定义表单和计时器,因为消息框只能在用户交互时关闭。

重复@user3585329的观点,要做到这一点,你可能需要创建一个HTA应用程序,它可以在internet explorer表单中显示信息。

弹出窗口()
WShell
对象的方法可以在指定的秒数后超时。下面是一个30分钟后应该消失的示例

CreateObject("WScript.Shell").Popup "Hello!", 1800, "Title"
修正如下:

CreateObject("WScript.Shell").Popup "MessageHere", 10, "Title"

超时以秒为单位,而不是以毫秒为单位

这篇文章建议它是可能的:Gavin如果你想看看那篇文章的底部,提到IfMsgBox和示例语法,就清楚地表明文档不是针对VBA、VB6、VB.NET或C语言的,这篇文章建议它是可能的:我不知道这与什么有关,但是我没有在msgbox before see或MSDN microsoft官方网页[link]()上看到超时功能。您发送的链接来自AutoHotKey,这是一种自定义脚本语言,因此不是vbscript,而是与之非常相似的语法。如前所述,我认为您需要一个HTA应用程序来创建所需的可能的工作副本。请记住,设置为1800的时间是以秒为单位的。是否有方法使此弹出系统成为模态或将其置于其他窗口之上?添加
,4096
至命令末尾,以作为系统模式消息框打开,显示在最顶部的窗口中。请注意,超时在vbscript中有效,但在Office VBA中无效。如果要在Office VBA中使用它,请尝试使用mshta.exe的此方法:我不是唯一一个在Office VBA中有问题的人。显示了使用mshta.exe的讨论和替代方法。请注意,mshta方法不支持回车,并且始终在主监视器上显示消息。显示支持超时、回车和返回值的API MsgBox@邦德,你的回答给了我灵感。我已经使用VBA 20年了,直到本周才知道超时是可能的。