何ができるか?
ウェブサービスを使うとき、そのログイン作業を自動化できる
なぜログイン状態をブラウザで維持しないのか?
重要なウェブサービスはパスワード管理ソフトで管理しており、ブラウザにログインデータを残さないようにしているため。
注意事項
個人情報を含むようなウェブサービスは、パスワード管理ソフトを使う。AutoHotKey のスクリプトは、テキストデータを平文で保存しているので記述したログイン情報の漏えいリスクが残る。
利用するアプリ
AutoHotKey
利用については「AutoHotKey Wiki」を参照
AutoHotKey は何ができるか?
Windows の操作を自動化できる
本件では何を行うか
Firefox で特定のウェブサービスを開き、ID とパスワードを入力してログインする
事例
任意のアカウント情報を使ってログインする
- ログインするウェブサービスのURL
- ログインID
- ログインパスワード
login_at_Firefox.ahk
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | ;Firefox でウェブサービスURL を開いてログインする ;Firefox でURL を開く SetTitleMatchMode, 2 run, C:\Program Files (x86)\Mozilla Firefox\firefox.exe ログインするウェブサービスのURL ; ログインフォームを開く sleep,1000 WinActivate, Mozilla Firefox ;Firefox をアクティブにする sleep,3000 #IfWinActive, Firefox 	; 自動ログイン 	App_Login("ログインID","ログインパスワード") 	return #IfWinActive ExitApp ; アプリを終了 Exit ; AHK を終了 ; ウェブサービスのログイン情報を入力する App_Login(Id, Password) { 	IME_OFF() ;IME がON なら、OFF にする 	sleep,1000 	;パスワード自動入力 	send,%Id% 	sleep,200 	send,{tab} 	sleep,200 	send,%Password% 	sleep,2000 	send,{enter} } ; ウインドウのIME を何が何でもOFF にする関数 IME_OFF() { 	;IME がON なら、OFF にする 	If (IME_IsON(WinExist("A"))) 	{ 	IME_ON(WinExist("A"), False) 	sleep,200 	} } ; ウインドウのIME がON かOFF かを調べる関数 IME_IsON(hWindow) { 	; WM_IME_CONTROL	= 0x0283 	; IMC_GETOPENSTATUS = 0x0005 	bufCurrentDetectMode := A_DetectHiddenWindows 	DetectHiddenWindows, On 	buf := DllCall("user32.dll\SendMessageA", "UInt", DllCall("imm32.dll\ImmGetDefaultIMEWnd", "Uint",hWindow), "UInt", 0x0283, "Int", 0x0005, "Int", 0) 	DetectHiddenWindows, %bufCurrentDetectMode% 	Return buf } ;ウインドウのIME をON、 OFF にする関数 IME_ON(hWindow, IsON) { 	; WM_IME_CONTROL	= 0x0283 	; IMC_SETOPENSTATUS = 0x0006 	bufCurrentDetectMode := A_DetectHiddenWindows 	DetectHiddenWindows, On 	buf := DllCall("user32.dll\SendMessageA", "UInt", DllCall("imm32.dll\ImmGetDefaultIMEWnd", "Uint",hWindow), "UInt", 0x0283, "Int", 0x0006, "Int", IsON) 	DetectHiddenWindows, %bufCurrentDetectMode% 	Return buf } | 
使い方
login_at_Firefox.ahk をダブルクリックして起動する
備考
	Q:なぜわざわざIME をオフにしているのか?
	A:AutoHotKey の”send” は、IMEを利用できるが、オンになっているとログイン時にただしく情報を入力できないから、オフ にする。
	参考:(AutoHotkey)(IMEの制御をする 編)