メッセージボックスを他のウィンドウの上に予定された時間にポップアップ表示する良い方法はありますか?デフォルトの「メッセージの表示」アクションは、他のすべての下に無意味に表示されます。
Windowの組み込みmsg
コマンドをこのように使用するのはどうですか?
msg * "Message you would like to send"
/TIME:x
などのその他のパラメーターを追加できます。ここで、xはメッセージを表示する秒数です。もちろん、msg /?
は利用可能なすべてのオプションを表示します。
これは、Windows XP以上で、メッセージを表示するシステムとして意味します。該当するOSのHome Editionを使用している場合は、運が悪いです。--- http ://ss64.com/nt/msg.html 使用可能なパラメーター。
Home Editionがある場合、次のバッチスクリプトはVBSCriptのPopUpメソッドを使用してメッセージをポップアップします。
@echo off
::See http://msdn.Microsoft.com/en-us/library/x83z1d9f(v=vs.84).aspx
::for an explanation of the PopUp method
::
::Use the directory from whence script was called as working directory
set CWD=%~dp0
::Use a random file name for the temporary VBScript.
set usrmsg=%CWD%%random%.vbs
::First parameter is the timeout in seconds. 0 = wait forever
set _timeout=%~1
::Second parameter is the message, enclosed in quotes.
set _Message=%~2
::Third parameter is the title of the window, enclosed in quotes.
set _Title=%~3
::This last variable is used to display a button/icon on the window.
::Setting this to 4096 sets the window to Modal (on top of everything else)
set _nType=4160
::Create the temp script using the provided information.
ECHO Set wshShell = CreateObject( "WScript.Shell" )>%usrmsg%
ECHO wshShell.Popup "%_Message%" ^& vbCrLf, %_Timeout%, "%_Title%", %_nType%>>%usrmsg%
::Run the script.
WSCRIPT.EXE %usrmsg%
::Delete the script.
DEL %usrmsg%
::Exit the batch file
exit /b
お役に立てれば!
追加:Windows 10でこれを機能させるには、メッセージを画面上に60秒より長く表示させたい場合は、「/ time:0」を使用する必要があるとコメントでGreggが言及しています。
https://www.howtogeek.com/136894/how-to-create-popup-reminders-with-no-additional-software/ もご覧ください。リンクの死の場合、私はここに要約します:
/ C TITLE [ここにあなたのタイトル]&ECHO。&ECHO。&ECHO [ここにあなたのメッセージ]&ECHO。&ECHO。&TIMEOUT [タイムアウト]
これにより、現在のウィンドウの最上部に表示される、指定されたテキストでコンソールウィンドウが生成されますが、フォーカスが自動的に奪われることはありません(通常どおりに現在のウィンドウを操作し続けることができます)。
これは私が見つけた最高の解決策でした、誰かに役立つことを願っています!
VBSでmsgbox
を使用します。このような:
Set filesys = CreateObject("Scripting.FileSystemObject")
Set Shell = CreateObject("Shell.Application")
Set wshShell = WScript.CreateObject( "WScript.Shell" )
PCName = wshShell.ExpandEnvironmentStrings( "%COMPUTERNAME%" )
msgbox "Dear user on " & PCName & vbcrlf & " " & vbcrlf & "This is a message box on top of all other windows.", &h51000, "I am msgbox"
Shell.Open "C:\Users"
コード&h51000
は、常に中央に、他のすべてのウィンドウの上にmsgboxがあることを確認します。
Msgboxのみをスケジュールしたい場合は、タスクスケジューラを使用できます。メッセージをスケジュールするための組み込み関数があります。タスクスケジューラの[プログラムの開始]の場所を参照してください。
Display a Message
は非推奨であり、msg
コマンドはWindows 10 1703では機能しませんでした。スケジュールされたタスクからのメッセージボックスを表示するためにpowershell
を使用しています。これをアクションを定義するときの引数:
-WindowStyle hidden -Command "& {[System.Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms'); [System.Windows.Forms.MessageBox]::Show('<message body here>','<window title here>')}"
それは醜いAFですが、動作します。