ホワイトブラウザをWindows8で動作させる
※ 現在 White Browser Version 0.7.4.0 が公開されており、Windows8に対応しているようです。
こんな問題があるのだが、理由もわかったので、ホワイトブラウザがWindows8 Release Previewで上手く動作するように対応する。
Windows側に手を入れるのもどうかと思うので、ホワイトブラウザに修正パッチを当てる方向で作業を進める。
まず、どこかにCLSID={019F7150-E6DB-11D0-83C3-00C04FDDB82E}を指定している部分があるはずなので、これをバイナリエディタで検索する。ただし、GUID構造体は
と定義されているので、バイトオーダの関係で検索するのは
となる。で0x00255FF0辺りで発見したので、これを{46B73C9C-0E62-41EE-86C0-2F8997777F48}に変更する。例によって実際のバイト配列は、
となる。変更後に一通り動作させるが、ランタイムエラーは出なくなったし、振り仮名もちきんと・・・ありゃ、英数(半角)が読み仮名変換だと全角になってる。が、とりあえず放置する。
需要があるかは知らんが、一応置いておこう。
ホワイトブラウザ 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を更新する。開発環境と多少の知識は必要だが、さほど難しくはないし、簡単にできそう。製品版でもこの挙動だったら作ってみようかなぁ。
こんな問題があるのだが、理由もわかったので、ホワイトブラウザが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を更新する。開発環境と多少の知識は必要だが、さほど難しくはないし、簡単にできそう。製品版でもこの挙動だったら作ってみようかなぁ。
この記事へのコメント