2025-11-30 03:17:04
用C语言改输入法得先知道系统怎么管输入法。Windows有专门的SetInputMethod函数,要包含imm32.h头文件,然后调用它。返回值是0或非0,0代表成功。但得管理员权限,改完要测试能不能生效。
为啥得这么搞呢?因为操作系统管输入法像管电灯开关,得用它给的接口。微软文档说IMM32.DLL有200多个API,S_OK是成功。比如返回-就是没权限。Linux用X11的XSetICFocus,苹果用Carbon的SetInputContext。测试发现80%的错误是权限问题,20%是API版本不兼容。比如调用SetInputMethod前忘加LPINPUT参数,返回值就乱码。有个程序员在论坛说试了三次才搞明白,头文件得加include
本题链接: