ホワイトブラウザをWindows8で動作させる

※ 現在 White Browser Version 0.7.4.0 が公開されており、Windows8に対応しているようです。

 こんな問題があるのだが、理由もわかったので、ホワイトブラウザがWindows8 Release Previewで上手く動作するように対応する。

 Windows側に手を入れるのもどうかと思うので、ホワイトブラウザに修正パッチを当てる方向で作業を進める。

 まず、どこかにCLSID={019F7150-E6DB-11D0-83C3-00C04FDDB82E}を指定している部分があるはずなので、これをバイナリエディタで検索する。ただし、GUID構造体は

typedef struct _GUID {
  DWORD Data1;
  WORD Data2;
  WORD Data3;
  BYTE Data4[8];
} GUID;

と定義されているので、バイトオーダの関係で検索するのは

50 71 9F 01 DB E6 D0 11 83 C3 00 C0 4F DD B8 2E

となる。で0x00255FF0辺りで発見したので、これを{46B73C9C-0E62-41EE-86C0-2F8997777F48}に変更する。例によって実際のバイト配列は、

9C 3C B7 46 62 0E EE 41 86 C0 2F 89 97 77 7F 48

となる。変更後に一通り動作させるが、ランタイムエラーは出なくなったし、振り仮名もちきんと・・・ありゃ、英数(半角)が読み仮名変換だと全角になってる。が、とりあえず放置する。

需要があるかは知らんが、一応置いておこう。
ホワイトブラウザ 0.7.3.1β用パッチ → http://dl.dropbox.com/u/57682866/WbPatch/WB_patch.zip
WhiteBrowser.exeと同じフォルダに解凍し、実行するとパッチが適用される。

■ おまけ::全角になった振り仮名を半角英数に戻すには?

(1) 定期的にタグレットで変更する
 実装は簡単だが、運用が面倒で、漏れが出る。

(2) IFELanguage を実装するCOMサーバを作成する
 MSIME.Japan.FELangをラップし、全角→半角英数の結果を返すCOMサーバを実装する。そしてそのCLSIDでWhiteBrowser.exeを更新する。開発環境と多少の知識は必要だが、さほど難しくはないし、簡単にできそう。製品版でもこの挙動だったら作ってみようかなぁ。

この記事へのコメント

n
2013年04月28日 03:52
めちゃくちゃ助かりました!!
パンピー
2013年06月09日 15:45
すごい!動くようになりました。

この記事へのトラックバック