同时接两个键盘,一个键盘是英文输入法,一个键盘是中文输入法,可以吗?

有时候需要频繁的输入密码,为了不出错,切换到英文输入法是最高效的(中文输入法输入密码有时候会输如中文导致密码输入失败)
那么:是否可以接两个键盘呢?
一个键盘无论敲什么,都是英文输入法
另一个键盘呢,无论敲什么都是中文输入法。
这样用起来应该很方便吧?

有把手抬起来换键盘的功夫为什么不按个Shift(好吧有的人就是不想记当前输入法中英文状态,可以理解)
就我用7-zip的经验,除非密码输入框是明文,输入法是会自动输出英文半角字符的吧:thinking:解压的时候碰到密码是中文还要专门调成显示密码才能输入中文

支持你的提问,我上网找了一下,暂时没有找到完美解决办法。

很多人都有你这个需求,可惜他们得到的回答都是「没必要」之类的。

我有两块小型键盘,所以能理解,你的需求如果能实现,是很爽的。

目前可尝试的方案:


顺便列举一下输入法之痛:

  • clipstudio、ps、ai等软件开着中文输入法无法使用快捷键。
  • 打code时,中英文都需要输入,频繁切换输入法有点烦。
  • 楼主所说的,输入密码时总被输入法卡一下。
    (当然,这些痛点都可以克服,按shift就完事了呗,但是我就是不想按shift。楼主的需求如果能实现,就是很爽啊。)

是啊, 如果切换输入法能严格遵循shift切换就好了,

可是我会经常遇到, 在一些软件的输入框中输入或者在它的不同窗口切换的时候, 明明当前是英文输入状态, 一旦点击输入框, 他就自动给我切换成了中文.

这让我本来应该行云流水输入框+快捷键的操作, 不得不停下来反复确认当前的输入法状态.

可是我明明默认就是英文输入法啊.

不知道大家有没有遇到这样的状况呢? 有没有解决的办法.

弄的我都想和题主一样, 弄俩键盘锁定输入法得了.

2 Likes

我试过,两个键盘的话,很难放得开,换起来也不舒服。

其实我有更好的方案,还是两个,都只需要一个废旧手机。

第一个方案是用手机虚拟键盘来输入英文字符,实体键盘输入中文,这个很好实现,我待会有空出个教程。

好处是手机比较小,架放键盘附近很方便,闲鱼20块钱买一个安卓4.4.4就能用。

第二个方案稍微复杂一点,但是更舒服。利用废旧手机的距离传感器,当你以姿势a敲打键盘时,是英文输入,以姿势b敲打键盘时,更加贴近距离传感器,这时是中文输入法。

第二个方案我已经知道怎么实现了,改天出个教程。

2 Likes

额,我用的默认配置小狼毫在切换中英文的时候是会在光标下方显示提示的,所以 至多按两次Shift就能切换好

其实是可以的。我说下原理:按下Alt+小键盘,可以直接发送字符编码,从而实现跳过输入法输入。

我也有这个问题,输入法有时候自己变,暂时没搞清楚原因

1 Like

发现

朋友们,我刚才发现了一个软件(貌似是AHK),开发者也有这个需求


我插上两个键盘,A键盘输入任意键,就提示我选择语言,我选择中文,B键盘输入任意键,提示我选择语言,我选择英文。

然后真的就实现了。

Snipaste_2022-02-23_13-29-23

但是不太流畅

我简单用了一会儿,不太流畅,不知道是不是我的输入法不太兼容。回头换个输入法再试试。

但是也有希望

一开始我以为:windows可能无法区分不同的键盘,只能开启一个输入法之类的「限制」,导致这个需求无法实现。

而这个软件说明,这个需求确实是能实现的(请原谅我不会编程,只能从逻辑上推断),将来有希望能把shift扣了( :dog:)。

1 Like

根据大家的提示,我今天做了尝试:
1)调节输入法状态显示


2)关闭搜狗的shift 功能,就是让中文纯中文,英文纯英文。
3)设置快捷
3
4)设置输入规则,每次输入账号前切换到英文
4

使用了一段时间,发现还是有点乱,不能预期顺利输入账号和密码,窗口会消失。
今天想分享截图发现
输入法设置变了,并不是我早上设置的了。变成这样。因为快捷没有了,所有自动输入乱了。
2

现在不知道为什么这个设置会变化……

期待双键盘研发成功 :)

通过手机虚拟键盘输入英文字符,实体键盘输入中文的方法已经搞定。

1 Like

完整版搞定,用手机作为英文输入键盘,可见在开启中文输入法情况下,手机虚拟键盘输入的是英文。

快

百度网盘链接
链接:https://pan.baidu.com/s/1vRb4ApGQsSsu9AfiAbMdAw
提取码:acyp

1 Like

如果要用物理键盘,有个思路: 搞第二台PC,处于同一个网络中,这个PC上装 AHK, 只要检测到键盘输入,自动向剪贴板输入一个“doooooooog-a”字符。两台PC 上都装 Ditto ,这样这个剪贴板的内容就传到了 第一台PC 上。这第一台PC 上的 AHK 监测到剪贴板变化了,并且格式类似“doooooooog-?”这样的,就提取出一个英文字符来,光标刚好也是输入状态的话,AHK 就输出一个英文字符 ,怎样?
那么,AHK是否能分辨设备硬件地址呢,如果可以,那么: AHK 监测到来自键盘甲的按钮行为,判断一下输入法是否英文,如果不是,自动切换为英文(比如ctrl+1),然后输出字符;如果是输入法是英文,直接输出字符。 AHK 监测到来自键盘乙的按钮行为,则判断系统输入法是否不是英文,如果不是英文直接输出按键动作,如果是英文,则切换一下系统输入法,再输出按键动作。
没有做测试啊,只是一个想法,不知道是否可行。

下面这个方案可以非常轻松实现两个实体键盘分别输入中英文

不过需要会写最简单的autohotkey代码

1 Like

测试了一下,这个软件也是可以用的。

首先需要设置这个,添加一个english语言包

但是存在一个问题,
就是每次换键盘,输入的第一个字符有问题。

如果从负责中文键盘切换到负责英文键盘,英文键盘输入的第一个字符会被吞掉。

如果从负责英文的键盘切换到负责中文键盘,中文键盘输入的第一个字符还是英文。

1 Like

软件 HIDMacros 可以区分不同键盘的按钮,并将按钮改变
屏幕截图 2022-02-26 010610

想法:如果是键盘1(keyb1) 的按钮按下,则输出 ctrl+1 去将输入法切换到英文,再输出 a ,这样这个键盘1所有按钮都知会输出英文了。
遇到的问题,重定义的时候,按钮“a”只能重定义成除了 “a”以外的所有其他按钮…… 不能定义为 ctrl+1 a .

1 Like

我用autohotkey 的 增强插件 AutoHotInterception https://github.com/evilC/AutoHotInterception 结合RightKeyboard https://github.com/agabor/RightKeyboard 的思路,写了一个双实体键盘可以用的ahk简单脚本。

同时避免了RightKeyboard会吞掉切换键盘后吞掉第一个字母的缺陷,可谓是完美啦!!!

如图,来回用两个键盘各按5次s键的结果:
快

第一步,按照 https://github.com/evilC/AutoHotInterception 的 Setup部分指导,安装好。

第二步,通过AutoHotInterception文件夹下Monitor.ahk想办法确定里面哪两个键盘的vid hid 是目标键盘,可以拔掉键盘挨个试一下。

Snipaste_2022-02-26_18-40-47

第三步,把以下代码新建ahk拷贝到AutoHotInterception文件夹下。用上一步复制的两个id替换代码里的两处,运行并开始你的双键盘之旅吧。
(只举了s键的例子,复制后补全26个字母就好了)

#SingleInstance force
#Persistent
#include Lib\AutoHotInterception.ahk
temp := 1

AHI := new AutoHotInterception()
id1 := AHI.GetKeyboardId(0x0433, 0x0004, 1)
cm1 := AHI.CreateContextManager(id1)

AHI := new AutoHotInterception()
id2 := AHI.GetKeyboardId(0x1A2C, 0x2D43, 1)
cm2 := AHI.CreateContextManager(id2)

return

#if cm1.IsActive

s::
{
if (temp = 2)
{
send,#{space}
sleep,200
temp := 1
sendinput,s
return
}
else
{
sendinput,s
}
return
}
#if

#if cm2.IsActive


s::
{
if (temp = 1)
{
send,#{space}
sleep,200
temp := 2
sendinput,s
return
}
else
{
sendinput,s
}
}

楼主测试好用的话,给点个赞吧!

3 Likes

这个方法是用的win+空格切换的输入法,默认开机时是中文输入法,另外安装一个英文输入法,一共有两个输入法。
也可以把win+空格改成shift等输入法内中英切换,这样的话可能更方便,但我懒得搞了。

1 Like

让键盘A每次有按钮按下的时候就先输出ctrl1切换到英文输入法,然后输出对应的字母,然后再输出ctrl+alt+2把输入法切回中文输入法。
(我的系统设置切换到英文快捷是ctrl+1,切换到搜狗输入法是ctrl+alt+2)
这样键盘a的动作就是:输入法到英文,敲一个字母,输入法回中文。
键盘b啥也不用设置,按下就是中文…

那样不行啊。
切换输入法和发送字符之间是要有留置时间的,我留了0.2秒,不留这段时间的话会吞掉发送的字符。
你这,在英文键盘上打一个字切换两次输入法。。。怕不是要慢死。

应该只在从a键盘到b键盘或者b键盘到a键盘时的第一个字符时切换输入法。这样比较不卡。