今のところなかなか好評なようで、ありがとうございます。
レビューの中で「秀逸なのは、アクティブウィンドウの状態を監視して、その状態に合わせて言語バーを自動的に移動してくれる点だ。」とおっしゃってくださっている方がいらっしゃる。一般向けには確かにそうなのだが、プログラミング的には、実はそこではない。もっとも工夫したのは、設定にレジストリも、*.iniファイルも使用していない点だ。では、どうしているかというと、ショートカットの起動オプションに設定を保存しているのだ。
ModestLangBarのような小物の場合、この方法は意外と便利で、設定を普通に保存する以外に、ユーザーごとに設定を変えたり、設定を変えたいろんなショートカットを並べてみたりすることもできる。
ショートカットの設定部分はCShellLinkという名前でクラス化してあるので、興味のある方はぜひお試しくださいな。
というのをsourceforge.jpに登録した。いまさらお年玉というわけでもないが。(汗)
で、何が控えめかというと、邪魔くさい言語バーをアクティブウインドウのタイトルバー付近に邪魔にならないように配置するということ。
同じコンセプトでは「言語バー空気読め」というのがあるので、そちらもぐぐってみてくださいな。もともとはClockPodを愛用していたのだが、Windows7にした機会に、自分で作ってしまった。
当初グローバルフックでやろうとしたのだが、WH_CBTでフックできるのとできないのがあって、うまくいかなかった。Firefox、xyzzy、InternrtExplore が軒並みだめじゃどうしようもない。で、結局ポーリングでやっつけてしまった。
言語バーは控えめにさせておいても結構じゃじゃ馬で、ウインドウのアクティブ化や、移動後に一度だけ再配置しても逃げてしまう。で、ポーリングのたびに言語バーの位置をチェックしないとだめだった。
いまどきのマシンなら、この程度のプログラムをポーリングで組んでもパフォーマンスには全く影響ないので、安心して試してくださいな。
遅ればせながら、AXL3をレジストして、svnがssl経由で使えることがわかり、結構嬉しかったりして。
ていうのは、svkが開発終了して、svn1.6のリポジトリが持ち運べなくなり、どうしようかと思っていたところだったから。
って、ずいぶん前から?
実に10か月ぶりの更新。(汗)
さぼってた理由は忙しかったのと、Excel VBAに翻弄されまくっていたから、てなところ。残念ながらRubyはほとんどいじっていない。
で、表題のようなプロジェクトをsourceforge.jpに上げた。これはExcelアドインをdll(xll)で作るためのC++用ラッパークラスライブラリだ。ちょっとどうしてもVBAを使いたくない理由があって、C用のExcel 2007 XLL SDKを調べたりしていたが、こいつを使いこなすのは恐ろしく面倒なことがわかり、いろいろ調べた結果、自分で自分の使いやすい物を作ってしまうのが一番良さそうだという結論に達したから。
C++はあまり慣れていないが、そこはDelphiとRubyで鍛えているから、テンプレートの使い方さえ分かってしまえばそう苦労はしなかった、というのは嘘で、ずいぶん大変だった。でも、まあ自分なりに使えそうなものが出来たので、暇な方は一度のぞいてみてくださいな。
Rubyで書いたDDNSアップデータがエラーを吐くようになった。
原因はniftyのSSLハンドシェークプロトコルが変更されたせいらしいのだが、検証して修正してる暇がない。
で、時々つながらなくなることがありますので、お許しを。>各位
artonさんがswin/vrubyを同梱してくださっている。おいらはちょっと遊べる状態じゃないのがつらいなぁ。
artonさんとにゃすさんからメールを頂いた。要旨は表題の関数がRuby1.9.1 rc1で動かないのでartonさんがパッチを書いてくださったというもの。
去年の7月から放っておいたのがついに発覚。
で、artonさんのとこでは更にSwitchで引数の数を調べなくても良い大変巧妙な方法を書いてくださっている。やっぱすごいな。
で、メールの返信にはインラインアセンブリ使うとx64では大変とか書いたが、そもそもx64ではWin32APIの呼び出し規約は__cdeclになっているので、引数の個数について悩む必要がない。従って32bit版に限って、考えればよいことだったのだ。
ということで、私はアセンブリ言語はほとんど分かりませんから、お二方、よろしくお願いします。x64の方はそのうちやるかもしれません。
結局ResetEventしたりタイムアウト設定したりしなくても、CreateEvent()のbManualResetフラグをfalseにするだけで良いみたい。
インストーラはW2Kに対応していないが、WDKさえ動けば、W2K用のバイナリは簡単に作成、インストールできる。XPかVistaにWDKをインストールして、それのWindows2000のビルド環境から、淺川さんとこのHow to build Dokan libraryの手順に従ってビルド、それをW2Kにコピー、インストールするだけだった。