#author("2020-10-20T09:37:27+09:00","default:nobuoki","nobuoki") #author("2020-10-20T09:37:40+09:00","default:nobuoki","nobuoki") * はじめに [#l81d2fb1] uwscで一定時間経過したら自動的に消えてくれるようなmsgboxを出す方法です #ref(./wshshell-popup.png) ユーザーが「OK」を押し忘れたり、何かのウィンドウの影に隠れてしまって「OK」が押せなくなったとしても、 勝手に閉じて後続のスクリプトを処理してくれます * コード例 [#x65b2067] Windows Scripting Host の WScript.Shell オブジェクトを生成し、Popup メソッドを使います 下記例では、ユーザーが何もボタンを押さなくても3秒経過したら自動的にダイアログが閉じて後続の処理(EXITEXIT)に進みます #prism(clike){{{ // リモートデスクトップの接続ウィンドウが存在するか? id = GETID("epE9106812 - リモート デスクトップ接続","Transparent Windows Client", 1) IFB !(id = -1) THEN // wshオブジェクトを使い、3秒間だけエラーメッセージを表示してスクリプトを強制終了します objShell = CREATEOLEOBJ("WScript.Shell") objShell.Popup("既に epE9106812へ接続済みです<#CR>3秒後に終了します", 3, "処理中断", 0 + 48) objShell.Popup("既に epE9106812 へ接続済みです<#CR>3秒後に終了します", 3, "処理中断", 0 + 48) EXITEXIT ENDIF // IFB に該当しない場合、以下処理を続ける EXEC("C:\Program Files\Internet Explorer\iexplore.exe https://www.goo.ne.jp/") ... }}} ウィンドウタイトルやアイコン表示など、popup メソッドの使い方はこの辺が分かりやすいかもしれません - [[第7回 WshShellオブジェクトの詳細(3) (3/3):Windows管理者のためのWindows Script Host入門 - @IT>https://www.atmarkit.co.jp/ait/articles/0410/21/news099_3.html]] * 与太 [#r7268a06] タイマー処理のことを「時限爆弾を仕掛ける」なんて言う先輩がいた事をふと思い出しましたw