前言

2024年11月16日22:50:50:目前推荐使用第三种解决方法

……

问题

最近在使用KeePass管理密码,发现自动输入是一个非常方便的功能,但是在自动输入账号密码的过程中遇到中文输入法就会搞得乱七八糟。遇到这种情况的懂的都懂,不多做解释了。

目的

我目的是无感,不用考虑输入法的问题,遇到输入账号密码就能直接使用快捷键使用KeePass的自动输入功能,而不是还要看一眼现在是什么状态的输入法,需不需要切换到指定输入法!

第一种解决方法

(不太推荐)

这是来自零度博客的一种解决方案【零度博客直达】

这个解决方法也很直接,就是在规则前加一个“+”。也就是Shift的意思。

就是在自动输入前保证是中文输入法模式,运行自动输入前账号密码前自动按一下Shift键来实现切换到英文输入法的目的。

实际用了一下,感觉也是个解决方法。但是我有切换成中文输入法的时间(除非当前就是中文输入法不用切换)为什么不直接使用快捷键确保在输入前直接启用美式键盘不就解决了??

默认规则为{USERNAME}{TAB}{PASSWORD}{ENTER}

解释:输入用户名,Tab键(换行),输入密码,回车键。

但这套规则明显不适合中文用户,因为使用自动输入时输入法必须是英文,否则会出现很尴尬的场面

本文推荐使用以下规则:+{DELAY 100}{CLEARFIELD}{USERNAME}{TAB}{PASSWORD}{ENTER}。

解释:Shift键(Windows10输入法切换),等待100毫秒,清空输入框,输入用户名,Tab键(换行),输入密码,回车键。由于新建记录默认从群组继承输入规则,所以只需修改一次即可,一劳永逸,具体操作见下图。

注:使用此规则自动输入时请确保输入法为中文

第二种解决方法

AutoHotKey解决

(根据自身情况判断是否符合自己的需求)

1
2
3
4
5
6
7
8
9
^!a::
SetDefaultIME("00000409") ;
Sleep 100 ;
Send ^!p ;
Return
SetDefaultIME(ime)
{
DllCall("LoadKeyboardLayout", "Str", ime, "UInt", 1)
}

解释一下

创建一个快捷键Ctrl+Shift+A运行脚本

第一步:“00000409”(美式键盘)执行切换美式键盘

第二步:延迟100毫秒,等待切换完成

第三步:执行KeePass自动输入的快捷键,我定义的是Ctrl+Shift+P运行KeePass的自动输入的功能

第四步:Return(脚本结束)


后来我使用过程中发现一个问题,如果你需要输入账号密码的窗口标题没能正确匹配KeePass里面的规则,恰巧你还使用了AutoTypeSearch插件,就会出现你需要切换到中文输入法进行中文关键字搜索,搜索完再切回美式键盘点击匹配的搜索项才能完成正确输入。这和我的预想背道而驰,反而更麻烦了!其实正常标题能匹配的时候这个AutoHotKey规则还是非常好用的,也不用修改默认的KeePass自带的那些规则。也很方便,但是遇到意外是真的很意外,不方便!Pass!

第三种解决方法

Windows输入法快捷键的方法(推荐)

也是不断从网上寻找方法,于是找到了下面这个方法

开发经验分享站:https://jinky.top/posts/keepass-change-input/

这个作者写的方法已经很清晰了,我简单记录一下。

Windows设置

步骤一:快捷键Win+i打开windows的设置,搜索高级键盘设置。

步骤二:打开高级键盘设置的→语言栏选项→高级键盘设置设置你想要的快捷键,建议设置为Shift+Ctrl+0即可

以上Windows设置已结束

我的配置:

美式键盘:Ctrl+Shift+0

中文输入法:Crrl+Shift+1


KeePass自动输入规则

1
^+0{DELAY 100}{CLEARFIELD}{USERNAME}{TAB}{PASSWORD}{ENTER}^+1

^:Ctrl

+:Shift