WSH で選択文字列を Google 検索
こないだ作った 選択文字列を Google 検索 だけど、こういう高レベルな機能は keyhac で頑張るよりも WSH でやった方がいい気がする。
まず、WSH でクリップボードを扱う方法のまとめがこちら。
IE を叩く方法は重いらしい。SFC mini というコンポーネントを使って Win32 API を叩くのがよさげ。
てなわけで↓こんなんできました。Clipboard.vbs の中身は↑Fio さんが作られた Class Clipboard です。
copy_and_search.wsf
<!-- コピーして Web 検索 --> <package> <job id="navigate"> <script language="VBScript" src="Clipboard.vbs"></script> <script language="VBScript"> set args = WScript.Arguments set sh = WScript.CreateObject("WScript.Shell") set cb = New Clipboard sh.SendKeys "^c" WScript.Sleep 100 text = Trim(cb.Text) sh.Run args(0) & urlencode(text) function urlencode(src) for i = 1 to Len(src) c = Mid(src, i, 1) if InStr(" !""#$%&'()*+,-./:;<=>?@[\]^_`{|}~", c) > 0 then dst = dst & "%" & UCase(Hex(AscW(c))) else dst = dst & c end if next urlencode = dst end function </script> </job> </package>
使い方
文字列を選択した状態で次のようなコマンドを実行する。引数にシェルの特殊文字が含まれる場合は ^ でエスケープすること。
copy_and_search.wsf "http://www.google.com/search?num=100&q="
しかしこの方法、長い (制御コードを含む?) 文字列をコピーすると高確率で WScript.exe が落ちますな。むぐぐ。