痒いところにUWSC
多重起動させない
最終更新:
uwsc_script
-
view
多重起動させない
<このスクリプトの掲載日:200800503>
- 概要
- 多重起動した場合、後から実行したスクリプトを終了する、または先に実行しているスクリプトを終了させる。
- UWSCの仕様(?)では、GETIDで自身のタスク名を指定してIDを取得しようとすると多重起動ではない場合は戻値が-1(NG)となり、多重起動した場合の戻値は1以上となる(先に実行しているスクリプトのIDが取得される)ため、それを利用することで簡単に多重起動を回避することが可能です。
- スクリプトの最初の方に記述(STOPFORMやOPTIONの直後に記述)するのがベストです。
- 多重起動時、後から実行したスクリプトを終了する例
STOPFORM(FALSE) ID=GETID("UWSC - "+GET_UWSC_NAME, "TApplication", 0.2) IFB ID>0 THEN MSGBOX("多重起動です。スクリプトを終了します。") EXIT ENDIF GETKEYSTATE(VK_ESC) WHILE !GETKEYSTATE(VK_ESC) SLEEP(0.1) WEND
- 多重起動時、先に実行されているスクリプトを終了させる例
STOPFORM(FALSE) ID=GETID("UWSC - "+GET_UWSC_NAME, "TApplication", 0.2) IFB ID>0 THEN CTRLWIN(ID, CLOSE) MSGBOX("多重起動です。先に実行していた同スクリプトを終了させました。") ENDIF GETKEYSTATE(VK_ESC) WHILE !GETKEYSTATE(VK_ESC) SLEEP(0.1) WEND
- ※基本的な違いは EXIT が CTRLWIN(ID, CLOSE) に変わっただけです。