UWSCの二重起動を回避

UWSCは通常の設定では二重起動が出来ません。二重起動をしようとすると、「UWSCの多重起動は禁止です」というダイアログが表示されます。このダイアログを表示しない、または閉じるための方法を解説します。

20110726fig4.png

UWSC.INIを変更する方法

UWSC.INIファイルの項目にあるNotMultiplex-1,-2,-3などのように、マイナスの数値にします。

参考:UWSC 掲示板:「多重起動禁止」のダイアログ

UWSC ヘルプ:

  NotMultiplex = スクリプト実行の多重起動を制限します (ファイルの関連付等からの実行)
          0:制限なし、 1:一つのみ、 2:二つまで(数はUWSC本体も含む)
         -9:制限なし、-1:一つのみ、-2:二つまで(マイナス値の場合 '多重起動禁止'のダイアログは出ない)

ダイアログを閉じる方法

UwscDailogClose.uws として保存します。

//多重起動禁止のダイアログを閉じる
w_ID = GetID("Uwsc", "TMessageForm")
ClkItem(w_ID, "OK", CLK_BTN)

20110726fig3.png

スケジュール設定>タイマー設定で、指定Windowが現れた時にチェックを入れ、

  • Titleを UWSC
  • Classを TMESSAGEFORM

とします。
実行するファイルは、UwscDailogClose.uwsを指定します。

より厳密にするなら、ダイアログに「UWSCの多重起動は禁止です」という文字列があることを確認して閉じるスクリプトに改良して下さい。

タスクを利用する方法

以下、洗練された方法ではありません。上記の方法を薦めます。

UWSCが既に実行されているかどうかわからない状態で休止状態にし、8時39分からWindowsをスタートさせる。

UWSCが二重起動を注意するダイアログが出ても問題は無かったのですが、出さないようにしました。
次の方法を取ることで、UWSCが二重起動を行わないようにしました。

新しいタスクから、

新しいタスク

"C:\Program Files\tskcln\TaskClean.exe" -pc UWSC.exe

を、実行するファイル名に入れます。
これを、UWSCcloseとして登録します。

タスク一覧画面

画像の例では、

  • 8:39に、TaskCleanを利用して、UWSCのタスクがあれば終了させます。
  • 8:40に、UWSCを起動します。

2つのタスクを実行する時間はずらしました。
ところが、この時間を1分ずらしていただけでは、UWSCが起動しなくなる場合がありました。
起動しなかった時のタスクのログに残っていたのは、

"UWSCclose.job" (TaskClean.exe)
	開始 2008/07/09 8:40:10
"UWSC.job" (UWSC.exe)
	開始 2008/07/09 8:40:12
"UWSC.job" (UWSC.exe)
	完了 2008/07/09 8:40:15
	結果: タスクは次の終了コードで完了しました: (0).
"UWSCclose.job" (TaskClean.exe)
	完了 2008/07/09 8:40:16
	結果: タスクは次の終了コードで完了しました: (0).

で、UWSCを起動させるタスクが「完了」の後に、TaskCleanのタスクが「完了」となり、起動したUWSCがすぐに終了してしまうのでした。
たまにUWSCが起動していないことがあり、長い間原因が判りませんでしたが、おそらくこれが原因でしょう。
5分ほど時間をずらしたので、今後はこのようなことが無いとは思います。
自動売買は、実行する処理が一つミスをすると後が続かなくなります。はっきりしたエラーが出てくるならその時直すことが出来ますが、たまに起こるエラーで原因がはっきりしないものは、かなりやっかいです。

参照:各アプリを終了

履歴

  • 2011-07-26 「UWSC.INIを変更する方法」「ダイアログを閉じる方法避」を掲載
  • 2008-08-12 「UWSCの二重起動を回避」にタイトルを変更
  • 2008-07-11 「UWSCの二重起動とトラブルを避ける」を掲載