你就把我上面代码里两个send,#{space}
换成你的ctrl1以及ctrl alt 2
就完事
对哦,没有考虑延迟,因为那个软件下载不下来,还没有实践…
哎,有些网址打不开
我在找镜像…看其他地方有没有下载
这点真是无比讨厌
删掉英文,只保留一个中文输入法,然后中文输入法开启默认英文模式。
已经试验成功啦!谢谢!
中文输入法的英文模式,在输入特殊字符的时候不知道为什么,有时候会乱掉,常常导致密码不能正常输入(keepass)并且将密码显示在中文输入法的提示框中,所以通常切换到“纯”英文输入法来提高成功率。
我有一個解決方案,目前我手機上已經實現了。那就是中英文混輸。現在我用lime輸入法,無論打中英文,基本都不需要切換。如果要上屏中文,就打對編碼,按空白鍵。如果要打英文,打完了選1(中文排在第二)。
我的電腦由於用的是gcin輸入法,它不能中英混輸,不過我可以通過移動眼球看右上角知道當前輸入法狀態,因此就不需要混輸了。
我觉得这个是输入法的兼容性和智能程度问题吧。
在默认输入法添加英文键盘,可以通过win+空格切换输入法
雷蛇的键盘,有的比较牛逼的,可以根据按键的释放深度不同,设置不同的功能。
经过一定的设置,可以实现轻按输入英文,日常使用输入中文。这样就不用第二个键盘了
搜索关键词 两段式触发键盘
哈哈哈,需要考虑一下 :) 谢谢
你用的是什么输入法,什么操作系统?
所以每次输入框获取焦点的时候,都要按一次或者两次shift来得到想要的输入状态了
换了rime输入法,上面切换的代码失效了。想试一试键盘a 按下->切换到英文->输出字符->切换回中文 的思路:
设置了完全监听一个其中键盘,按下按钮,获得了 code是一个数字,怎样把这个数字输出为字符?这个数字,似乎不是 ASCII 码
#SingleInstance force
#Persistent
#include Lib\AutoHotInterception.ahk
AHI := new AutoHotInterception()
keyboardId := AHI.GetKeyboardId(0x0C45, 0x8071)
AHI.SubscribeKeyboard(keyboardId, true, Func("KeyEven"))
return
KeyEven(code, state){
ToolTip % "Keyboard Key - Code: " code ", State: " state
If (state==1)
{
st =%code% ;这个code按钮不同数字不同
tmpstr = Chr(%st%)
SendInput, %tmpstr% ;想输出 code 对应的 按钮啊,这样不行。
}
}
我今天也装上了RIME 输入法啦,切换中英文提示真好多了!
这个乱掉的情况是这样,win11,搜狗输入法,用 keepass 输入密码,只留一个搜狗,默认中文。设置的规则首先按shift 切换到搜狗的英文模式,在输入用户名和密码,密码比较复杂,有些特殊符号,就发现有时候这些特殊符号没有顺利的输入,似乎触发了搜狗的某些快捷键?还是什么其他原因? 没有研究了。
然后就添加了 纯英文输入法,每次切换到纯英文输入法下去输入密码。
改成这样就可以了
#SingleInstance force
#Persistent
#include Lib\AutoHotInterception.ahk
AHI := new AutoHotInterception()
keyboardId := AHI.GetKeyboardId(0x0C45, 0x8071)
AHI.SubscribeKeyboard(keyboardId, true, Func("KeyEven"))
return
KeyEven(code, state){
If (state==1)
{
st =%code%
st := Format("{:03X}", st)
SendInput, {SC%st%}
}
}
谢谢! 哈哈哈,搞定了:
#SingleInstance force
#Persistent
#include Lib\AutoHotInterception.ahk
AHI := new AutoHotInterception()
keyboardId := AHI.GetKeyboardId(0x0C45, 0x8071)
AHI.SubscribeKeyboard(keyboardId, true, Func("KeyEven"))
;mouseId := AHI.GetMouseId(0x046D, 0xC00C)
;AHI.SubscribeMouseButtons(mouseId, true, Func("MouseButtonEvent"))
return
KeyEven(code, state){
;ToolTip % "Keyboard Key - Code: " code ", State: " state
If (state==1){
send,^+1
sleep,100
st =%code%
st := Format("{:03X}", st)
SendInput, {SC%st%}
send,^+2
}
}
MouseButtonEvent(code, state){
ToolTip % "Mouse Button - Code: " code ", State: " state
}
^Esc::
ExitApp
不过,英文的这个键盘,没有组合键的功能啊,就是 ctrl + v ,ctrl+c 这样的功能。现在键盘左右放置…还行吧,前后放太容易误碰了。