彻底修改Windows Live Messenger的字体大小

彻底修改Windows Live Messenger的字体大小
磨磨蹭蹭升级到了Windows Live Messenger 8.1.0178.00英文版之后,突然发现界面字体都变得很小了(原来的WLM 8.0在我的英文版XP上并没有出现传说中的小字体问题所以也没有在意)。不得不着手准备修改它的资源文件折腾小得BT的字体。

首先Google了一下,发现网上广为流传了几个所谓完美的中文字体修改方法都是很烂的垃圾。无非是修改msgsres.dll,把几个主要字体:比如联系人列表的字体、对话窗口标题栏字体什么的强制修改成9pt。这样修改的后果当然只会是只有这些字体变成了9pt,此外其他字体依然是老样子(比如主界面自己的昵称和状态什么的)。完全是治标不治本的烂方法,猪哥不屑之( ̄^ ̄)。

既然要做,就要做得彻底点。必须仔细观察一下msgsres.dll的界面XML资源里面到底是怎样引用字体的。可以注意到主要都是这样的形式:
FontSize:rcint(49615)pt;
FontSize:rcint(20102)pt;
基本上使用这两种形式的字体占据了界面Element的绝大多数。另外也有少数几个地方是使用更小的一些7pt之类字体的,但是这类字体多是用于显示很小的比如连接状态什么的,不会出现中文所以无需修改(因为我用的是英文版(^▽^))。

那么很明显了,只要找到49615和20102这两个RC String就可以一下子把所有的小字体(目测应该是8pt)改大(一般用9pt)。修改两个字串就改了一大片小字体的Element,这点修改是合算而且彻底的。MSN Messenger所有的这类String资源都存放在msgslang.8.1.0178.00.dll(注意后面的是版本号,随着版本的不同而变化)里面。

用ResHack之类的资源修改软件打开msgslang.8.1.0178.00.dll,找到那两个麻烦的字串:
  • String Table 1257-1033当中20102号String
  • String Table 3101-1033当中49615号String

可以看见两个String果然都是8,只要改成9就万事大吉了。刚开始我是直接在ResHack里面修改成9,然后Compile。结果MSN这厮报错说msgslang这个dll非法。看来加了校验(─.─||)。老天保佑千万别是在末尾加了CRC校验之类的,那可就没辙了。使用二进制比较工具比较了一下放心了:MSN居然是采用在空白处插入“PADDING”这个字符串的方式来进行所谓的“校验”(哇哈哈,看来MS有的时候方法也是很傻的么),而ResHack编译后自然把这些没用的PADDING扔掉了,被MSN发现了。

要绕过这个校验也很容易:俺手工修改2进制文件不用ResHack不就得了。用UE打开msgslang.8.1.0178.00.dll,修改偏移0x1798b4和0x18a4f0两个位置上的0x38为0x39(注意要是你用的MSN版本不同或者语言不同,偏移可能不一样。但是不会差太远,实际上这里就是上面20102和49615两个String的位置。只要对比着ResHack里面的内容和UE的ASCII显示部分前后找找就能很快找到的),存盘,OK。

下次启动Windows Live Messenger之后,界面字体就变成9pt了,中文都显示正常了:

主界面(注意自己的昵称、状态和联系人的中文显示):



联系人信息(同样注意昵称和状态的中文显示):



聊天窗口(注意标题和联系人状态信息的中文显示):



完美!中文不再是小小的一团变形的丑样子了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值