$-::
keywait,-, T0.2
if !errorlevel
send, -
else
send, {}
keywait, -
return
以上代码需要在输入法在英文状态下长按减号才能输出短下划线。
中文状态下:——
参考
用的是autohotkey_L,即支持unicode版-------
哪个版本是ahk_L版本啊,狗哥,我在官网上看到1.1.36和2.0.11的版本,我用的前者,代码中的部分内容好像不支持。
不知道我理解的对不,下面的例子开启后,不管何种输入法状态,短按都是英文句号,长按才是中文句号。
;长按".>"输入中文句号。
$.::
KeyWait, .
If (A_TimeSinceThisHotkey > 300)
SetTimer, mainp, -1
Else
SendInput,.
Return
mainp:
SendInput,。
Return
短按不影响原本功能,该是啥就是啥。
中文状态是中文英文状态是英文
应该就是v1版的ahk
好吧,那好像实现不了我说的 不管何种输入法状态,长按只出 英文输入法 的那个。
或者不管何种输入法状态,短按出英文,长按出中文。
我研究一下,可能确实是ahk版本问题吧
$-::
keywait,-, T0.2
if !errorlevel
send, -
else
;send, {}
Send % “{ASC 0” . Asc("") . “}”
keywait, -
return
在网上抄了一个代码,我也不太懂,加进去想不到行了,以后或许可以实现不管何种输入法状态下,长按输入英文的符合。
这么写可以
;长按"-"输入短的下划线,短按仍为原功能
$-::
KeyWait,-
If (A_TimeSinceThisHotkey > 300)
SendInput,{Text}_
Else
SendInput,-
Return
刚才竟然解决问题了。
关于标点符号的输出,有些标点符号,比如短下划线,常用于文件重命名的使用中,我觉得这种符号不管输入法何种状态还能输出自己它才是最佳状态。
试了,可以。上面那段代码也可以。
如果想要不管何种中英文状态都会出现的符号吧、就这样写吗:
{Text}后面跟着的符号。