2006-01-04

GoogleDeskbarのカスタムサーチをエクスポート/インポートする

あけましておめでとうございます。今年もこのブログをよろしく。
新年一発目の記事は,去年書き忘れてたやつです。いきなりこんなネタです。


----
Googleがリリースしているデスクトップツールはいろいろあるけども,GoogleDeskbarには一番お世話になっています。Googleデスクトップサーチより便利だと思う。 GoogleDeskbarをインストールすると,ディスクトップのタスクバーにGoogle検索窓が常に表示されるようになります。これでWinキー+Gで検索窓に移動,キーワードを打ち込んでやれば,検索結果が小さなブラウザに表示される。この小さなブラウザがコンパクトで良くて,作業中にちょっと調べたいときなどにはちょうど良い。


GoogleDeskbarにはカスタムサーチという機能があって,これを使えばGoogle以外の検索エンジンでも検索できるようになります。というか検索サイトじゃないものも登録できるので,よく使うサイトなんかを登録しとくとIEの"お気に入り"みたいな感じで使える。私はWebアプリをいくつか登録しておいて,ランチャーのような感じで使ってます。カスタムサーチにはショートカットキーも登録できるんで,慣れるとすんごい便利。



こんな風に便利なDeskbarのカスタムサーチだけど,良くない点が一つあります。それはカスタムサーチの設定を取り出せないこと。設定ファイルとかに書いてあれば簡単なんだけど,調べてみたらどうやらレジストリにしか書いてないみたい。そこでカスタムサーチ設定をエクスポートするスクリプトを書いてみました。言語は例によってGroovy。


まずはエクスポート用。
GDeskbarExport.groovy
import org.codehaus.groovy.scriptom.ActiveXProxy

regPath = { keyNum -> "HKEY_CURRENT_USER\\Software\\Google\\CustomSearch\\${keyNum}" }

wshell = new ActiveXProxy("WScript.Shell")
try {
num = 0
while (num < 30) {
reg = wshell.RegRead((String)regPath(num++))
println reg.value
}
} catch (Exception e) {}
上記スクリプトは,"groovy GDeskbarExport.groovy > gdeskbar_exp.txt"みたいな感じで起動してください。
次にインポート用のスクリプト。これは"groovy GDeskbarImport gdeskbar_exp.txt"って感じで読み込ませてください。

GDeskbarImport.groovy
import org.codehaus.groovy.scriptom.ActiveXProxy

regPath = { keyNum -> "HKEY_CURRENT_USER\\Software\\Google\\CustomSearch\\${keyNum}" }

wshell = new ActiveXProxy("WScript.Shell")

num = 0
new File(args[0]).eachLine { line ->
wshell.RegWrite((String)regPath(num++), line, "REG_SZ")
}

上記のスクリプトではScriptomというコンポーネントを使っているので,使う場合は先にインストールしとかないと動きません。このスクリプトでは基本的にカスタムサーチの設定は全部上書きです。元々あった設定はなくなっちゃいます。あと,レジストリを触るスクリプトなんで,使う場合は自己責任でお願いします。自分のPCでは上手くいったけど。


でもこういうスクリプトは本当はVBScriptで書くのが素直だよなー,と思ったのでVBSで書いたスクリプトも一応置いときます。言語が変わっただけで,やってることは上と同じです。これならGroovyが動かない環境でも使えます。

GDeskbarImport.vbs

GDeskbarExport.vbs

0 件のコメント: