初期値ありのテキストボックスをn秒後に自動的に閉じる
初期値ありのテキストボックスをn秒後に自動的に閉じるワザのご紹介です。
わたしはこんなニーズに適用しました。
ニーズ
- システムからデータを抽出して、実績を集計
- 普段は前日分を翌日に作業
- 金土日分は月曜にまとめて作業
- 手動実行で安定化後、スケジュール実行も見据えたい
- 毎早朝のスケジュール実行なら、常に前日を指定すれば良い
- 失敗分のリカバリ、年末年始、GW、夏休み等に備え、任意の日付分を手動実行する余地も残しておきたい
- 1シナリオで実現したい
WinActorパーツの構成
- 日時取得(今日)
- 日付計算(-1日後)
- ファイルと関連づいているアプリ起動:enter10sLater.vbs
- インプット(初期値あり):抽出日を入力してください、今日-1、結果
(この後に、抽出+集計の処理が続く)
[enter10sLater.vbs]の中身
Set WshShell=Wscript.CreateObject("Wscript.Shell")
WScript.Sleep(10000)
WshShell.SendKeys("{ENTER}")
インプット(初期値あり)
asaさん+kenjiさんに感謝!
補足
[enter10sLater.vbs]はピンポンダッシュ式で動かす必要があるため、外部VBSとした
「スクリプト実行」でこのままライブラリ化すると、完了を待ってしまい、成り立たない
「ファイルと関連づいているアプリ起動」なら完了を待たずに済む
今は安定化させる段階
不安定要素はほぼない
このままスケジュール実行に放り込める見込み
10秒後としている箇所は、手動実行時の感覚を踏まえて微調整するかも
SendKeysのリファレンスはどこも似たり寄ったり
今回はここの伏線を回収したカタチ
10秒待機後にEnterするVBS
https://winactor.com/questions/?q=待機ボックスで表示したメッセージボックスのOKボタンを押すシナリオを書きたい
[enter10sLater.vbs]は「Webページからのメッセージ」系のポップアップにも使えます。
「Webページからのメッセージ」系への対処は、いくつか流派がある模様です。
ブラウザ関連ライブラリの「ダイアログクリック」:標準の1ライブラリ、オフィシャルで安心か
https://winactor.com/questions/question/【ブラウザ】chromeでのポップアップ操作について/
クリック後にウィンドウハンドル取得:標準ライブラリの組み合わせ、手法が確立されてる印象
https://winactor.com/questions/question/【サンプル】ポップアップウィンドウの操作につ/
クリック(Win32)text 値⇒OK:標準の1ライブラリの設定カスタマイズ、成功実績はあるものの汎用性や安定性はどうなんだろう
https://winactor.com/questions/question/「webページからのメッセージ」をウィンドウ識別/
http://www.matchcontact.net/winactor_jp/faq.asp?faqno=JPN00170&sugtype=4
ウィンドウ識別+Enter:今回紹介したワザとも親戚的な関係
https://winactor.com/questions/?q=IE%E3%80%80「Webからのメッセージ」の対応方法について
NTT DATA製IE制御ライブラリの「IE_ダイアログボタン操作」:追加提供の1ライブラリ、オフィシャルで安心か
https://winactor.com/questions/question/「webページからのメッセージ」で識別されない/