魔改造版Win2000でXPのタスクマネージャを動かすには?

tks

魔改造版 Windows 2000 で XPのタスクマネージャーを動かすと、ネットワークタブが使えるようになります。
しかし…

tks2
システムトレイが大惨事になります

これ実は、SHELL32.dll の Shell_NotifyIconW で使われるNOTIFYICONDATA
構造体の問題なんです

Windows XP版の taskmgr.exe では 0x3b8、2000版では 0x3a8 のサイズです

V2 専用 dwInfoFlags           Long
V3 専用 guidItem                GUID
V4 専用 hBalloonIcon          Long

88 NOTIFYICONDATA _V1_SIZEA
488 NOTIFYICONDATA _V2_SIZEA
504 NOTIFYICONDATA _V3_SIZEA
508 NOTIFYICONDATA _V4_SIZEA

188 NOTIFYICONDATA _V1_SIZEW
936 NOTIFYICONDATA _V2_SIZEW
952 NOTIFYICONDATA _V3_SIZEW
956 NOTIFYICONDATA _V4_SIZEW

0x3b8 = 952 なので NOTIFYICONDATA _V3_SIZEW になっていて、 Windows 2000には対応していないわけです。

guidItem
    Type: GUID
    Windows XP and later.

となっていますね

続く構造体は
hBalloonIcon
    Type: HICON
    Windows Vista and later.
だそうです。

とりあえず、バイナリエディタで3か所書き換えてみたところ・・・

tks3
ちゃんと動くようになりました!

・ω・ って訳で、 shell32.dll にちょっと手直しが必要だということが判明
今後直す予定だよ!

おすすめ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です