長話短說,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的識別。