长话短说,onenote在中文切换英文时,会强迫设置calibri字体,尽管我们设置的默认字体包含英文,而这个字体非常丑,这个恶心的bug据说存在了十几年,害惨了无数强迫症患者。
多亏了LXF同学的逆向研究,治愈了强迫症(全网唯一真正解决方案): https://lxf.me/116?unapproved=815&moderation-hash=cf6f75f95c7e998e75cbc001a0c905f9
然而,最近发现win10上onenote 2016使用上述工具无效(onenote for win10不受影响),研究一下午之后整理出根因及治愈方案如下:
通过调试,确认onenote 2016最新使用的是ONMAINW32.dll,不再使用ONMAIN.dll,在作者出新版本之前,可以按如下步骤解决:
1. 使用everything搜索到ONMAINW32.dll,拷贝到普通目录中
2. 在上述普通目录中使用010edit打开上述dll,crt-f搜索“68 02 03”(32位程序)或者“b9 02 03”(64位程序)
3. 修改成“68 00 03”(32位程序)或者“b9 00 03”(64位程序) ,ctl-s 保存
4. 使用修改后的dll替换原来的dll
使用上述手工方法,改一次即可,一劳永逸。
在这简介下作者的修复逻辑:
不想手工改的同学可以直接移步下载自动修复工具: https://github.com/zhmjx/FuckCalibri
原理参照LXF同学,添加ONMainW32.dll的识别。