KeePass Password Safe 2 的中文输入法切换插件
使用 KeePass 多年,在自动输入账号密码时,经常被中文状态的输入法所困扰,经常需要手动切换为英文输入法,十分麻烦。为了解决这个问题,开发了此插件,部分代码参考了 aardio 输入法与键盘状态检测 的实现,在此特别感谢其作者 Jacen He 的开源。
- 重构输入法中英文状态切换逻辑。
- 移除
{IME:CN}{IME:EN}占位符,现在程序会自动切换了。 - 修复了微软拼音输入法无法切回中文状态的问题。
- 测试了小鹤音形输入法、冰凌输入法等。
- 扩展了占位符号,现在支持组合按键(最多3个功能键+1个主键,用空格进行区分)
- 例如{IME:EN@91 32}表示 Win+空格
- {IME:EN@91 32}{DELAY 100}{IME:EN},理论上表示切换输入法,然后按下Shift键
- 懒惰了挺长一段时间,终于修复了热心朋友反馈的触发和切换的问题。
- 升级了项目目标框架,从 .NET Framework 3.5 到 .NET Framework 4.7.2。
- 提供PLGX插件。
- 调整占位符号为
{IME:CN}{IME:EN}。 - 优化了输入法切换的逻辑,兼容性待测试。
- 首次发布。
- 采用较为简单的切换方法,存在部分问题。
- 占位符号为
{IME:ON}{IME:OFF}
阅读了一下 KeePass.Util.AutoType 的方法,发现有AutoType.FilterSendPre、AutoType.SendPost,对应的就是发送前和发送后。 在发送前关闭中文状态、发送后打开中文就可以了。
- 安装插件。将下载的
IIME.PLGX文件放入 KeePass 插件目录下。 - 重新启动 KeePass程序,会后台自动处理输入法状态,无需任何额外操作。
- 使用前一版本的需要移除旧的
{IME:CN}{IME:EN} - 编辑顶级群组—自动输入—替代默认序列为:
{DELAY 100}{CLEARFIELD}{USERNAME}{TAB}{PASSWORD}{DELAY 100}{ENTER}—确定 即可,其余的子群组都可以继承这个默认序列。
编译PLGX的方法:.\KeePass.exe --plgx-create D:\IIME --plugx-prereq-os:Windows