IE6でメモ帳トラッパーを利用

対象IE6のソース表示にメモ帳トラッパーを使いたい人
公開/改記日2001 09/21,09/22,10/27, 2002 03/29

以前の情報

以前ここで公開した情報とはかなり変わっているので、以前の情報を参照したい場合は古いバージョンのページをご覧ください。

メモ帳トラッパーv2.33をIE6で使用した場合の問題

IE6のソース表示をメモ帳トラッパー経由で行う場合、「IEのバージョンは不明です。」というエラーダイアログが毎回表示されてしまいます。さすがにこれはかなり気になるので、修正してみました。

いつものお約束ですが、このページに書かれていることを実行したことで問題が起きた場合でも私は責任とりませんので、それが嫌なら実行には移さないでください。

2つの方法

本当はソースで直せばいいのですが、メモ帳トラッパーの作者の方が最新版のソースを無くされてしまったとのことで最新版のソースがないので、最新版を強引に改造する方法、ひとつ前のバージョンではあるもののソースレベルできれいに直す方法の2つを挙げておきます。

最初に、両方に共通する点として修正対象のファイルを書いておきます。修正すべきファイルは、メモ帳トラッパーのインストールファイル

です。(具体的な修正方法は次の項で説明します。)Windowsディレクトリなどにあるセットアップ後のファイルではなく、インストール前のファイルを修正することに注意してください。(こうしないとコントロールアプレットが普通に修正できません。)これらのファイルに対して修正を行った後、普通にセットアップを行うのですが、メモ帳トラッパーが既にセットアップされている場合は先にメモ帳トラッパーのアンインストール作業が必要です。具体的には、コントロールパネルの「アプリケーションの追加と削除」からメモ帳トラッパーを削除し、Windowsを再起動します。そのあとセットアップしなおせばOKです。

まだセットアップをしたことが無ければアンインストールの作業は必要なく、普通にセットアップを行うだけです。

ただし、以前にセットアップをしたことがあるかどうかに関係なく、Windows2000などのシステム修復機構をもったWindowsの場合は、Win2000でメモ帳トラッパーを利用などを参考にしてセットアップをする必要があります。(dllcacheの中身を以前消した場合でも、メモ帳トラッパーのアンインストール時に復活するので注意。)

修正

次のうちどちらかの方法で修正を行ってから、上のようにセットアップを行えば完了です。

バイナリレベルの修正

最新版を使いたい、という人にはこれがお勧め。ただし、IEのバージョンが(たぶん)7.55以上になると改造が無効になってしまいます(どうしても嫌な人は一番下の方法を使ってください)。改造は、次の修正を加えるだけ。バイナリエディタが使える人なら簡単にできるでしょう。

バイナリエディタが使えない人のためにバイナリパッチを作りました。それを使いたい人はWindows用プログラムのページからダウンロードしてください。

ソースレベルでの修正

こちらの場合、Delphi3以降が必要になります。とりあえず当方ではDelphi4 StandardとDelphi6 Personalで、次の方法により修正できることを確認しました。(確認したのはメモ帳トラッパー本体のみです。コントロールパネルアプレットはビルドできてないので分かりません。)

[おまけ]バイナリレベルの修正その2(技術情報つき)

今回問題になっているあたりの逆アセンブル結果を示します。

_0040BFD8  D945 F0          FLD     dword ptr[EBP-10h]
   40BFDB  D80D 10C14000    FMUL    dword ptr[40C110h]
   40BFE1  E8 AE67FFFF      CALL    _00402794         
   40BFE6  05 48FEFFFF      ADD     EAX,FFFFFE48h     
   40BFEB  83E8 1E          SUB     EAX,+1Eh          
   40BFEE  72 0F            JB      _0040BFFF         
   40BFF0  74 14            JZ      _0040C006         
   40BFF2  48               DEC     EAX               
   40BFF3  83E8 1D          SUB     EAX,+1Dh          
   40BFF6  72 15            JB      _0040C00D         
   40BFF8  83E8 64          SUB     EAX,+64h          
   40BFFB  72 17            JB      _0040C014         
   40BFFD  EB 1C            JMP     _0040C01B         

最初に示した方法で0x64のところ(40BFF8の最後)を0xFFにすると、次のようになります。

   40BFF8  83E8 FF          SUB     EAX,-01h

IEのバージョンが7.55以上になっても大丈夫なようにするには、その次の分岐部分で分岐しないようにします。(この場合、分岐条件のチェックがなくなるので、0x64を0xFFにする必要はありません。)

   40BFFB  EB 17            JMP     _0040C014

元のファイルでの書き換え位置は、最初の方法の次のアドレスです。0x72になってるのを0xEBにしてやればいいです。


みにこんてんつ一覧