2004/10/05

スキマスイッチ

タイトルと本文になんら関連のない話ですが…

スキマのあるスタートボタン
そうです、これが下にスキマのあるスタートスイッチです(スキマが見づらいですけど)

ということで、日本語XPだとスタートボタンの下に2pxのスキマがあって、これ、すごくかっこわるい。

で、それはなぜかというのはもう3年も近く前に本田雅一の週刊モバイル通信のほうで原因が明かされていてこの話は私も知ってたんですが、どーせオレuxtheme.dllにパッチ当ててWatercolor使うし関係ないもんねー、とタカをくくってたら思いっきり教育実習のときに持って帰ったノートマシンにVisualStyle入れるのをわすれてまして、2週間半もLunaで過ごさなければならないというワナが発生。

まぁ、色はMetalicにしておけばまだ我慢出来るのでいいとしても、あの下のスキマが許せません。ついでにいうとイタリックのMS UI Gothicも許せません。ってことで、これを直そうと思い立ったんですが、styleBuilderとかノートマシンに入ってませんし(そもそも使ったこともないし)、さーてどうする。というか、実家じゃネット環境がないのでstyleBuilderをダウンロードしてくることもできない。

となれば、いつものようにバイナリを解析するまでです。とりあえずコイツの本体はC:\WINDOWS\Resources\Themes\LunaにあるLuna.msstylesなので、こいつをバイナリ解析すると……あれ、最初の2文字が"MZ"じゃん。

勘のいい人はもうこれで気がついたかと思いますが(いるよね?)、これ、Windowsの実行ファイルです。拡張子がmsstylesとかいうのになってるだけで、バイナリフォーマットはexeやdllと変わりません。ってことでDependencyWalkerでExport関数を探してみましたが、特にExportしてる関数もないし、他のDLL(kernel32とか)に依存関係もありませんので、これはごく普通のリソースDLLってことになりますね。

となれば、こいつの拡張子をDLLに変えてVS.NETで開いてみると、あぁ、やっぱりStringTableがありました。NormalBlue@[StartMenu::Toolbar]Font=MS UI Gothic, 9とかいうようなエントリがあるのを見る限り 色&文字の大きさ@[ウィンドウパーツ]プロパティ=値 って感じになっているようなので、とりあえず普通の文字サイズのメタリックのテーマのフォントを変えたいということでNormalMetalic@[Start::Button]Font=MS UI Gothic, 12, bold italicとなってるところをNormalMetallic@[Start::Button]Font=Franklin Gothic Medium, 14, bold italicとかにして上書き(boldつけるかどうかはお好みで)。

で、あとはWindowsをセーフモードで起動してluna.dllをluna.msstylesに上書きします(セーフモードじゃないとファイル保護に引っかかるのはexplorer.exe書き換えの時と同じですね)。すると…

スキマのないスタートボタン
はい、スキマ消えました

まぁ、これは他にもMS UI Gothicの9ptになってるのをTahomaの8ptに置き換えたりとかしてるんで、いろいろフォント変わってるんですけど、こういった要領でやるとLunaをカスタマイズすることが可能ですねー。…ってことに、今更ながら気がつきました、って話。実家でネット無い生活になるとこういう重箱の隅をつつくような生活になっちゃうんですよねー。

techな話のついでにtasktrapの話もちょこっと。サイトがひとつになったあとにマジメに配布用ページでもつくってちゃんとした公開スタイルをとろうと思います。今手元では0.40 prereleaseってことで、プラグインメニューとか、半透明機能の強化とか、わりとどうでもいい部分が強化されてるぐらいでメインの部分はあんまり変わってないんですが(そもそもメインの部分ってなんだろう)、ぼちぼちウィンドウルールとか、システムメニュー拡張とか、その辺に進出してみようかなーといった感じです。

うされもん @acidlemonについて

|'-')/ acidlemonです。鎌倉市在住で、鎌倉で働く普通のITエンジニアです。

30年弱住んだ北海道を離れ、鎌倉でまったりぽわぽわしています。

外部サイト情報

  • twitter
  • github
  • facebook
  • instagram
  • work on kayac