auカブコム証券でのシステムトレードの方法(3) auカブコムのkabuステーションを、WindowsのVPSで自動起動する方法

スポンサーリンク

kabuステーションの起動画面にユーザID、パスワードを入力するスクリプト(VPSでリモートデスクトップ切断時用)

リモートデスクトップ切断時も動作するUWSCスクリプトにはコツがある

UWSCはWindowsの画面操作を代替するアプリケーションです。そのため、マウス操作の座標を記録して、自動的に操作を再現する機能があり、よく使われているようです。

しかし、VPSでリモートデスクトップ切断時は、座標を指定して操作するという部分が全く使えません。

画面の座標と言うものは、クライアント側の画面サイズや解像度との相対で決まるものです。リモートデスクトップ切断時にはクライアント側の画面サイズや解像度が確定できないため、座標も確定できないためと思われます。

しかし、UWSCには座標ではなく、画面タイトルから画面IDを取得し、それをもとに操作を行う機能もあります。こちらは自動記録ではなく、プログラミング作業が必要となりますが、安定して画面操作を再現でき、VPSでリモートデスクトップ切断時にも問題なく動作します。

kabuステーションログイン用UWSCスクリプト

// 口座番号はkabuステーション起動時に自動入力されるようにしておく

// パスワード
kabucom_password = "***自分のパスワード***"

// kabuステーションのウィンドウのタイトル名
kabustation_title = "ログイン"

// タイトル名からウィンドウIDを取得
window_id = GETID(kabustation_title)


// ウィンドウをアクティブ化
CTRLWIN(window_id , ACTIVATE)


// パスワードを入力
// 最後の引数の1は操作可能コントロール部品の順番を表す
// 口座番号が自動入力されている状態だと、kabuステーション起動直後のカーソルは
//パスワードに当たっているため1を指定する
SENDSTR(window_id , kabucom_password, 1)
	
//Enterキー入力(ログインボタン押下と同じ効果)
//ソフトウェアキーボード(パスワード入力欄の横のボタンを押下で出てくる画面)を含めた
//順番指定が難しいためEnterキー入力でログインボタンを押下を代替する
KBD(VK_RETURN)

タスクスケジューラで、kabuステーション起動後に動作するように設定する

上記のUWSCスクリプトを、先に設定したkabuステーション起動用タスクの後に動作するようにします。kabuステーション起動時に自動的にバージョンアップが動作することがあるので、私の場合は大事を取ってkabuステーション起動の30分後に、ログインスクリプトが動作するようにしています。

コメント