几次升级到Windows 10都因为没有顺手的五笔输入法可用最终不得不换回Windows 7,搜狗百度,QQ五笔什么的试用几下各种扑街,知乎某人推荐的花儿五笔,精灵五笔小鸭五笔等等等等也都是半吊子。试遍了所有五笔输入法,期间也不乏各种改。最终结论是,只有微软五笔能用,虽然勉强接受了不能切换的横向布局,但微软五笔不能禁用Shift切换中英…。从王码86就用惯的Ctrl+Space开关输入法,升到Windows 10却硬要我改掉。退了一万步也终究接受不了Shift键切换中英的设计。写个代码各种无可挽回的误按,一不小心空按一下Shift,莫明其妙的打出一堆中文,而且再按一次Shift切回英文,打出的字还**自动上屏,各种无奈的删了重写 …
如何彻底禁用Windows 10微软五笔输入法Shift键切换中英:
注:
以下方法是https://github.com/flowercodec/Win10WubiShiftPatch此页所述方法的引申,不愿动手的可去此页下载大佬的内存补丁。这里的方法为了解决大佬留下的“重启ChsIME.exe进程后Shift功能恢复”的问题。
1、把这个文件:C:\Windows\System32\InputMethod\CHS\ChsIME.exe复制出来,用IDA打开它。(自行下载调试符号,可能要蕃强,你知道的)
2、找到CImeDocumentEventSinkChsWubi 类的GetModeChangedFromHotKey函数
(保证你的IDA有keypatch插件,没有的去这里下:https://github.com/keystone-engine/keypatch )
3、在IDA主菜单上选Edit -> Patch program ->assemble,把mov eax, ecx 指令改成 xor eax, eax即可,如下图:
4、然后在IDA主菜单上选Edit -> Patch program -> Patch program apply output file。
5、最后,想办法把改过的ChsIME.exe替换回去。有个服务一直在保护ChsIME.exe进程,进程一旦终止会立即重启进程。XueTr啥的ARK工具在Windows 10 64上也基本失效。一个简单的方法是,用gflags设置一下映像劫持,把它改成这样:
然后终止ChsIME.exe进程,这时notepad.exe会被启动,但ChsIME.exe暂时不启动了。然后就可以替换C:\Windows\System32\InputMethod\CHS\ChsIME.exe这个文件了。
6、做完上面操作之后别忘把gflags设置的映像劫持去掉,然后终止notepad.exe进程,等ChsIME.exe重启即可。
还有个Ctrl+Space偶尔不灵的BUG,不知道啥毛病,看似有道词典HOOK了Ctrl按键事件导致的,实在忍不了再搞吧。
目前在搞竖向布局了,有少许成果,但时间不足,同好的同学可以留言我,也许能一起加快进度。