scr/uwscで自動的に閉じるmsgbox

はじめに

uwscで一定時間経過したら自動的に消えてくれるようなmsgboxを出す方法です

wshshell-popup.png

ユーザーが「OK」を押し忘れたり、何かのウィンドウの影に隠れてしまって「OK」が押せなくなったとしても、
勝手に閉じて後続のスクリプトを処理してくれます

コード例

Windows Scripting Host の WScript.Shell オブジェクトを生成し、Popup メソッドを使います
下記例では、ユーザーが何もボタンを押さなくても3秒経過したら自動的にダイアログが閉じて後続の処理(EXITEXIT)に進みます

// リモートデスクトップの接続ウィンドウが存在するか?
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)
  EXITEXIT
ENDIF

// IFB に該当しない場合、以下処理を続ける
EXEC("C:\Program Files\Internet Explorer\iexplore.exe https://www.goo.ne.jp/")
...

ウィンドウタイトルやアイコン表示など、popup メソッドの使い方はこの辺が分かりやすいかもしれません

与太

タイマー処理のことを「時限爆弾を仕掛ける」なんて言う先輩がいた事をふと思い出しましたw


トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2020-10-20 (火) 09:42:50