📈
Autoit で MarketSpeed2 のログインを自動化する
MS2 のログイン時にパスワードを入れるのがめんどくさいので自動化しました。その時のメモです。
AutoItとは
- https://www.autoitscript.com/site/
- AutoItは、Windowsの自動化やGUIスクリプト作成に特化したスクリプト言語
- ".au3"という拡張子を持つファイルにスクリプトを書いてコンパイルして使う
インストール
- AutoIt Downloads - AutoIt
- .exe ファイルをダウンロードして実行していくだけ
テストスクリプト
- 適当な場所に
test.au3
作成- (ディレクトリ内で右クリックして
新規作成
したら、AutoIt V3 Script
というボタンが出てくるのでそれで作成してもいい。その場合テンプレートが記載されたファイルが作成される。ま、とりあえず.au3
拡張子をもったファイルならいいはず) - お好きなエディタで開いて、書き込む
MsgBox(0, "Hello", "Hello World!")
- (ディレクトリ内で右クリックして
-
test.au3
右クリック >Run Script
MS2自動起動スクリプト
- デスクトップにあるMarketSpeed2のアイコンをダブクリックして、ログインWindowをだし、そこに平文で書いたパスワードを送信するという危険な方法を書いています。
- セキュリティ的には絶対ダメな方法です。個人の判断でやってください。何が有っても一切の責任はとりません。
前準備
- デスクトップ上の
MarketSpeed2
アイコン上で右クリック ->パスのコピー
してメモ ... ① - Windows の検索ボックスから、
Au3Info.exe
を検索して起動 - マーケットスピード2を起動してログイン画面を出す
- MARKETSPEED Ⅱ ログイン画面のポップアップを指定すると、
Au3Info
で、Title を確認出来るので、それをメモ... ② - パスワードのテキストボックスを指定すると、
Au3Info
のControl
タブでID
を確認できるので、それをメモ ... ③ - カーソルをログインボタンのところに持っていくと、
Au3Info
のControl
タブでID
を確認できるのでそれをメモ ... ④
スクリプト
;; ダブルクリック
ShellExecute("①のリンク")
Sleep(500)
ShellExecute("①のリンク")
;; ログインウィンドウが出るまで10秒待つ
Sleep(10000)
If WinActive("②の文字列", "") Then
ControlSetText("②の文字列", "", ③, "パスワード")
ControlClick("②の文字列", "", ④)
Else
MsgBox(0,"ERROR", "Login Windowがアクティブではありません")
EndIf
;; マーケットスピード2をアクティベートしておく(任意)
WinActivate("MarketSpeed2", "")
- ③と④は数値です。
- これで
Run Script
すればログイン出来るはずです。
実行ファイルに変換し、Pythonで呼び出す
- スクリプトを実行ファイルに変換して、 .exe ファイルを作る
- Python で .exe ファイルを呼び出し実行する
という流れです。
実行ファイル作成
-
Compile Script to .exe
をwindows 検索ボックスから検索して起動 - Sourceに、スクリプトファイルへのパスを入れる。Browseボタンから探せばよい
- Destication には自動でファイルパスが入る。変更したかったら変更すれば良い。
- Convertボタンを押すと、実行ファイルが作成される
Python
import subprocess
# start.exe
subprocess.run([r"C:\path\to\start.exe"])
Discussion