参加してきました。
もちろんオーディエンスですけどね。その感想などなど。
参加したプログラムは
・B2 「js-ctypes 〜ネイティブコードを呼び出す新しいカタチ」
・A3 「ビッツにおける拡張機能開発 (Wired-Marker 他)」
・大ライトニングトーク
・懇親会
です。
ネイティブはC++で書かないといけないというのは変わらず
js-ctypes という方法?により呼び出し方が簡単になるという理解です。
ざっと聞いた感じでは、コーディングはExcelのCALL/REGISTERに近いのかなと。
ただ、Firefox3.6時点での制約がいくつかあるそうで、
ちょっと微妙かもというのが個人的な感覚です。
・参照
・コールバック
が使えないそうなので、win32APIをバリバリ使おうとしたらほとんど無理ですよね。
まぁwin32APIなんてバリバリ使うなってことだとは思うんですけど。
でもまぁこれ聞いてふと思い出した技術があるのでちょっとコード書いてみました。
WindowsかつExcelがインストールされている限定です。
ExcelのCALL/REGISTERを使ってネイティブコードの呼び出しを行うサンプルです。
sample.js とでもして保存してダブルクリックで可視化されている一番上のウィンドウのタイトルを表示します。
「参照」が使えないってのはここでいうGetWindowTextが使えないという理解です。
var NULL = 0; var GW_HWNDNEXT = 2; var GW_OWNER = 4; var xlApp = new ActiveXObject("Excel.Application"); var fnGetTopWindow = loadLibrary(xlApp, "user32", "GetTopWindow", "JJ"); var fnGetWindowText = loadLibrary(xlApp, "user32", "GetWindowTextA", "2JFJ"); var fnIsWindowVisible = loadLibrary(xlApp, "user32", "IsWindowVisible", "JJ"); var fnGetWindow = loadLibrary(xlApp, "user32", "GetWindow", "JJJ"); var hwnd = fnGetTopWindow(0); while(hwnd) { if ( fnIsWindowVisible(hwnd) && fnGetWindow(hwnd, GW_OWNER) == NULL ) { var text = fnGetWindowText(hwnd, 0, 255); WScript.Echo(text); break; } hwnd = fnGetWindow(hwnd, GW_HWNDNEXT); } function loadLibrary(xlApp, module, alias, typetxt ) { var hm = xlApp.ExecuteExcel4Macro('REGISTER("' + module + '","' + alias + '","' + typetxt + '")'); return function() { var s = hm ; for(i=0; i<arguments.length; i++) { if ( typeof(arguments[i]) == "string" ) { s += ',"' + arguments[i] + '"' ; } else { s += "," + arguments[i] ; } } return eval("xlApp.Run(" + s + ");"); } } |
個人的には技術的なとこで目新しいところは特に無かったような気がします。
ただ、拡張を頑張るとああいうところに立てるというのはちょっとずきゅんと来ました。
あとはwelcomeページあたりが参考になりました。
いちおう目玉というか目的がコレでした。
個人?のことになってしまうのでどこまで書いていいかよくわかりませんのでかるーく。
旅行/スリット/Chromeあたりが琴線に響きましたよ。
ほんとは一個一個について書きたいんですけど自重。
お寿司とビールが出ました。太っ腹。
途中で挿入されたムービーも感動ものでした。
くじ引きでふぉくすけが当たったのが感動です。
このかわいさが写真で伝えきれないのが残念です。
あと今日で5周年。
おめでとうございます!
懇親会のあとはとあるコミュの方たちの飲み会に混ぜてもらっちゃいました。
オープンソースとかあまり明るくないんですけど色々ためになるというか
モチベーションが上がるような飲みでした。
この場を借りてお礼させていただきます。
てかこういうの初めて参加したんですけど楽しいですね。
どーせヒマだしいろいろ参加していこうかと思いました。
2009.11.9 @ 10:45 AM
お疲れ様でしたー
twitter の「緑のパーカーに花柄ピンクシャツ」でわかりましたw
やっぱり、フォクすけかわいいですよねぇ。
たぶん来年もあると思うのでまたお会いしましょう。
2009.11.10 @ 12:32 AM
おつかれさまでしたー!
懇親会で調子乗って飲みすぎました。
ふぉくすけかわいいですよね。
とりあえずPCの上に飾っています。