Windows [cmd.exe] command to display a messagebox with timeout?

不羁的心 提交于 2019-12-20 12:35:34

问题


Note: This is a question-with-answer in order to document a technique that others might find useful, and in order to perhaps become aware of others’ even better solutions. Do feel free to add critique or questions as comments. Also do feel free to add additional answers. :)


How can I display a messagebox by typing a single Windows command, e.g. in the Run dialog from the Start menu, or in the [cmd.exe] command interpreter?


回答1:


One way is to use apparently undocumented functionality, namely that [mshta.exe], the runtime engine for Windows .hta HTML applications, accepts a general URL as command line argument, including a javascript: protocol URL:

mshta "javascript:var sh=new ActiveXObject( 'WScript.Shell' ); sh.Popup( 'Message!', 10, 'Title!', 64 );close()"

            

This command can be issued in e.g. [cmd.exe]], or e.g. in the Run dialog from the Start menu, perhaps combined with the schtasks command to create a tea-timer…

The above messagebox times out after 10 seconds, but specifying a 0 second timeout means “don’t time out”, producing a more ordinary persistent messagebox.

For a simpler messagebox you can instead use the alert function provided by the MSHTA host.




回答2:


on command prompt:

msg %username% Message

interesting parameters are:

/w        (wait for user) 
/time:<seconds>



回答3:


Found that if you copy msg.exe from a Win7 Pro machine to a Win7 Home machine it works. Copy msg.exe to and from the C:\Windows\System32 folder.




回答4:


What if you create a small VBScript with the message you want to display? I.e. create e file, named "Message.vbs" with the content:

MsgBox "Some info here", 0, "Message Title"

and call it like this:

cscript.exe PATH\Message.vbs



来源:https://stackoverflow.com/questions/21165565/windows-cmd-exe-command-to-display-a-messagebox-with-timeout

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!