*
作者:sunwind
时间:2015年12月8日17:43:47
说明:避免输入法影响输出“英文”字符串
*/
f8::Send % getAscStr("-Log")
getAscStr(str)
{
charList:=StrSplit(str)
for key,val in charList
out.="{Asc " . asc(val) . "}"
return out
}
新版ahk支持{Text}修饰符,可以更优雅的实现了,下面代码功能是无视输入法状态输出英文单引号 英文双引号
单击’ 输出英文单引号
双击’ 输出英文双引号
shift+ ’ 输出英文双引号
+sc028::
SendInput, {Text}"
return
^+sc028::
SendInput, {Text}""
return
sc028::
if pressesCount > 0 ;>0说明SetTimer 已经启动了,按键次数递增
{
pressesCount += 1
return
}
pressesCount = 1 ;否则,这是新一系列按键的首次按键。将计数设重置为 1 ,并启动定时器:
SetTimer, WaitKeyph, -250 ;在 250 毫秒内等待更多的按键。
return
WaitKeyph:
if pressesCount = 1 ;该键已按过两次。
{
SendInput, {Text}'
}
else if pressesCount = 2 ;该键已按过两次。
{
SendInput, {Text}"
}
pressesCount = 0 ;不论上面哪个动作被触发,将计数复位以备下一系列的按键
return