OneFont for OneNote防止字体切换工具

知乎相关回答:https://www.zhihu.com/question/30089364/answer/1165021255

恭喜你发现了宝藏!本文是防止OneNote自动切换字体迄今为止唯一完美的解决方案,如有雷同,纯属抄袭。

众所周知,OneNote在切换中英文输入时,会在微软雅黑和Calibri反复横跳,该bug(feature)据说从Office 2003开始至今存在了近20年未能修复,逼死了一大批强迫症患者。

有言道,如果觉得国家不好,就去考公务员建设她;如果觉得OneNote不好,就向微软提交BUG或者加入微软修复它;如果不愿意加入微软或者加入了却干不过负责Office的阿三产品经理……[Emm]

没关系,真正的共产主义接班人敢于在没有发动机源代码的情况下,熟练运用逆向工程修(爆)复(破)掉任何程序。

使用方法:启动OneFont.exe使之在后台运行,程序会检测到OneNote的启动,并将其调教为不会自动切换字体。OneNote设置中需设置为包含英文的中文字体(例如宋体、微软雅黑),不要设置为纯英文字体。

工具仅支持运行在64位系统上,在作者电脑64位Win10下的64位UWP版本和32位OneNote 2016桌面版本测试通过。

(有同学留言说想要个捐助二维码,po主受宠若惊。其实页面右边区域有个链接指向捐助二维码,可能太不起眼了吧。链接是/donate

2020-7-25 update:

修复某些系统设置下对OneNote桌面版无效的问题(例如英文版win10+中文语言包的case)
感谢@Yang瓮党 同学的测试

2020-4-25 update:

添加支持64位OneNote 2016桌面版,之前64位2016桌面版运行无效的同学重新下载即可
感谢@吴学阳 同学的测试

TIPS:

  1. 开始那个MessageBox点确定后才会开始工作哦
  2. OneNote的全局设置里务必一定要设置为“微软雅黑”,或者其它同时包含中英文字库的字体,务必一定不能是默认的Calibri,否则输入中文时会跳到雅黑
  3. 安装了搜狗等第三方国产流氓输入法的同学不是非常推荐使用,可能会使情况变得更迷惑(见评论区大佬实验)
  4. 还是有问题且确信自己正确操作的同学,请知乎私信联系我远程协助。

79 Replies to “OneFont for OneNote防止字体切换工具”

    1. 你用ResHacker之类的PE工具自己加个呗(图标比原程序还大.jpg)

  1. Bug Report

    Win10 Onenote2016,使用工具后,先输入中文,再输入数字。所输入数字仍旧跳回Calibri

  2. 十分感谢,这个小工具很好用!请问如何添加/quiet参数,想要每次开机的时候自动启动,但是不太清楚怎么弄,期待回复!

    1. 一种方法:1右键拖动,创建快捷方式2右键属性,目标一栏结尾输入参数3把快捷方式移动到当前用户开始菜单启动的目录里。windows应用知识点可能有点多,百度学习一下会比较好,另外也可以用注册表的方式

  3. 64位桌面OneNote+等线测试成功。希望能加一些程序的参数,比如设置开机运行、不显示MessageBox等。

    1. 快捷方式里改下目标一项即可 “C:\Program Files\OneFont\OneFont.exe” /quiet
      放入启动文件夹里,开始-运行,打开如下目录%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

  4. 目前新版本的office365(microsoft365)安装, 又重新自带了OneNote桌面版(无2016标识),测试同样可生效。 ps: 工具下早了是不支持64桌面的版本,重装了office之后没生效 , 以为是工具的问题, 然后发现了是我的问题, 顺道来码一下, 捞一下其他人。

  5. 不能分开中英文就很烦,比如我先用宋体输入中文,然后切换到英文输入法,上面还显示宋体..

  6. 大佬,是大佬没错了。
    但是这个工具在使用中出现了另一个问题:当用管理员身份启动OneNote后,这个工具就失效了……
    我是win10,64位,2004版本,OneNote2016桌面版也是64位的。

    1. 你用管理员启动的OneNote当然也要用管理员启动外挂程序,我又不是会任意提权的神仙黑客 = =

  7. onenote 2016 mso(16.0.12026.20312) 32位无效
    ————————————————————————
    Try time 9
    New process ONENOTE.EXE
    Found module ONMain.dll
    Module base 6c4b0000 size b8a000
    ReadProcessMemory 6d039000 failed, LastErr=299
    Signature not found

  8. 20200911 bug report:alt= 输入公式时,原本在这一状态下输入中文可以输入雅黑字体的,但打开Onefont.exe之后,该状态中文字体锁定为SimSun

    1. 微软设计如此。本工具的原理是强行关闭默认开启的双字体模式,这要求选定的字体必须同时包含中英文字库,但输入公式时指定的Cambria Math仅包含英文,缺少字库只能跳到宋体。

  9. OneNote for Windows 10有没有人出现行距变小的问题?设置的默认宋体,一开始输入时行距可能会变得很小,输入一段时间后正常,但之后又可能出现最后一行文字下半部分消失的问题。重启OneNote后正常。

    1. 是有这种情况,我都是拉一拉滚动条,再不行切换页面

    2. 我这边拉滚动条和切换页面好像没用 🙁 只能重启OneNote

  10. 20201007 OneNote桌面版(365)似乎无效?
    系统是20H1/H2(今天更新的,前后都不生效)
    但商店版(OneNote for Windows10)生效

    1. emmm,我表示快受够桌面版本了,你要是确实一直有需要,可以留个qq号有空远程研究下

    2. 不过看到楼上说旧版本不支持64bit我看看是不是我用的旧版

    3. 对是我的问题!我从旧电脑上拷的备份文件夹一直在用我好蠢

      我这就去打钱(

  11. 发现个问题,如果含有英文数字的字段被设置为标题的话,英文和数字会变回Calibri字体,同时中文的微软雅黑字体变成Microsoft YaHei字体。
    64位家庭版win10
    onenote for windows 版本 16001.13127.20190.0

    1. 我经常用的uwp版本目前没遇到这种情况,另外据我所知正常情况下微软雅黑是不会自己变成Microsoft YaHei的,你是不是搜狗输入法?(搜狗会干扰字体设置,知乎评论里有讨论到)

  12. 经测试,“待办事项”的条目换行后会从微软雅黑变回Calibri,其他情况不会。
    —-
    Win10 家庭中文版
    OneNote 2016 版本 16.0.10338.20019 64位

    1. UWP的待办事项目测没问题(我电脑上没装桌面版。。

  13. 用“ctrl+alt+数字”设置样式的时候还是有问题,UWP和2016都一样。

    精神不好就休息一下吧,想起来了再研究好了。

  14. 从2021年1月初下载这个神仙插件使用良好,但是从2月初开始也会在输入英文时回到calibri….
    不知道原因是什么
    onenote 2016 64位
    win10
    系统默认微软输入法

  15. 感谢大佬救我狗命!!!!真的太感谢了呜呜呜呜 一直要被carbli气死了

  16. onenote 2016 64位通过ONENOTEIMP.dll间接链接的ONMAIN.dll,因而作者的工具只使用一层EnumProcessModulesEx没有锁定到ONMAIN.dll,故而修改ONMAIN.dll的意图没有达到。

  17. 通过调试,确认onenote 2016 64位最新使用的是ONMAINW32.dll,不再使用ONMAIN.dll,在作者出新版本之前,可以按如下步骤解决:
    1. 使用everything搜索到ONMAINW32.dll,拷贝到普通目录中
    2. 在上述普通目录中使用010edit打开上述dll,crt-f搜索“68 02 03”
    3. 修改成“68 00 03” ,ctl-s 保存
    4. 使用修改后的dll替换原来的dll

  18. 神仙工具,3月一直用到现在,直到0513 windows更新后工具好像无效了(╥╯^╰╥)
    默认字体选了微软雅黑,开了工具,切换到英文或者数字的时候跳回calibri

    1. 检测进程启动是需要轮询,但是频率我已经调的很低了,或者你也可以等OneNote成功启动之后把OneFont kill掉

  19. 追加一条 找到了一个字体 汉字是微软雅黑,但是英文确是Consolas 配合这个工具 还可以

  20. 所以说, 巨硬真的一点都不考虑解决这个问题么…
    或者说, 巨硬就是在给强迫症治病?

  21. 在onenote中插入的表格里,直接输入数字其实还是Calibri,因为看的出来没居中,是偏上的。这时候框起来再点选一次微软雅黑,才真的变成微软雅黑,因为居中了;用小键盘输入数字也是以上情况,请楼主看看,谢谢!

  22. Win11+Office365 Beta 通道 使用Onenote会使微软拼音(无论新旧版本)间歇性无法输入中文 有没有大神知道如何解决

  23. 2022_02_19-12_26

    今天进行测试和使用,暂时有效,且完美匹配,64桌面版本.就是没有再任务栏中显示的放置一个小图标.

    测试了中文输入法下:
    1. 先输入中文,再输入数字,再输入,再输入英文字符 ,接着再输入中文, 正常

    2 先输入数字,再输入英文,再输入中文,正常

    3. 先输入英文,再输入数字,再输入中文,正常.

    4. 输入中文,切换到英文状态下,输入英文字符,数字,再切换为中文输入状态,输入汉字,正常.

    5.(用的英文符号)先输入符号–其实是英文符号,再中文,数字,字符都正常.

    英文输入法:
    同上测试 都正常.

    感谢大佬,穷人用爱感谢吧!

  24. 这也太强了!!!为什么没有大力推广啊………………这样的神器应该人人都知道才对!

Leave a Reply to wYT Cancel reply

Your email address will not be published. Required fields are marked *