Autohetkey如何实现不管在何种输入法状态,长按-号(减号)输出短的下划线?

$-::
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}后面跟着的符号。