エゴサーチを普段からたしなむ人がいる。そのエゴサーチを楽にする方法を、AutoHotKey を使って作った。
背景
複数のブランド名のエゴサーチをする必要が出たため、いちいちキーワードを入力して検索していた。Google の検索はURL にキーワードを引数として受け渡せるので、キーワード検索結果ページをブックマークやタブを固定していつでも検索できるようにしてもよい。ただ、キーワードの足し引きの管理が面倒になると感じたので、AutoHotKey を使ってキーワード管理、および検索エンジン選択できるようにした。
ソース
| 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 63 64 65 66 67 68 69 70 71 72 | ;Firefox でエゴサーチ SetTitleMatchMode, 2 ; ウインドウ検索方法を中間一致にする WinActivate, Mozilla Firefox ;Firefox をアクティブにする #IfWinActive, Firefox 	IME_OFF() 	; 検索例 	Move_URL("桜の道", "Instagram") 	Move_URL("桜の道", "Twitter") 	Move_URL("桜の道", "Google") 	Move_URL("桜の道", "Facebook") #IfWinActive ExitApp ; アプリを終了 Exit ; AHK を終了 ; 指定されたURL を今のブラウザのタブで開く Move_URL(targetURL, site) { 	send, ^t ; 新しいタブを開く 	sleep,2000 	searchURL := "" ; 検索用変数 	If (site = "Google"){ 		searchURL := "https://www.google.co.jp/search?q=" . targetURL 	} 	Else If (site = "Facebook") { 		searchURL := "https://www.facebook.com/search/top/?q=" . targetURL 	} 	Else If (site = "Instagram") { 		searchURL := "https://www.instagram.com/explore/tags/" . targetURL . "/?hl=ja" 	} 	Else If (site = "Twitter") { 		searchURL := "https://twitter.com/search?q=" . targetURL 	} 	send, !d ; URL アドレスバーにフォーカスする 	sleep,200 	send, %searchURL% ; ログインフォームを開く 	sleep,2000 	send, {enter} 	sleep,2000 } ; ウインドウのIME を何が何でもOFF にする関数 IME_OFF() { 	sleep,4000 	;IME がON なら、OFF にする 	If (IME_IsON(WinExist("A"))) 	{ 		IME_ON(WinExist("A"), False) 		sleep, 1000 ; この待機時間があると、IME が確実にOFFになる 	} } ; ウインドウの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 } | 
検索方法
MoveURL(“検索ワード”, “検索するウェブサービス名”)
検索するウェブサービス名:Google, Facebook, Instagram, Twitter
検索したいキーワードを続けて実行すると、次々にタブを開いて検索を実行していく
半角スペースを入れるときはAscii文字 “%20″を使う
例) “桜の道 リボン日記” → “桜の道%20リボン日記”
備考
- Facebook はログインしないと、検索結果が出ない
- Instagram はハッシュタグ検索を行っているだけなので、現状複数語の検索ができない
- Yahoo! やBing 検索も、同じ要領で機能追加できるだろう。ただ、Weibo はよくわからない(URL Encode が使われている様子がある。)
- ブラウザは使いなれているFirefox を使っているが、別のブラウザを使ってもよい
