Autohotkey “发送的空格键” &引用;(无中断空间)当CapsLock状态为关闭时,否则在自动热键中发送常规空间
我试图通过Autohotkey “发送的空格键” &引用;(无中断空间)当CapsLock状态为关闭时,否则在自动热键中发送常规空间,autohotkey,Autohotkey,我试图通过space键发送一个非中断空格(),只有在CapsLock打开时,否则发送常规空格键 我尝试了以下几种不同的变体,但没有一种是完全正确的 $~Space:: GetKeyState, state, CapsLock, T if state = D send, { } ; non-break space else send, { } ; regular space Return 它似乎总是发送常规空格($~,或者只发送~)
space
键发送一个非中断空格(),只有在CapsLock打开时,否则发送常规空格键
我尝试了以下几种不同的变体,但没有一种是完全正确的
$~Space::
GetKeyState, state, CapsLock, T
if state = D
send, { } ; non-break space
else
send, { } ; regular space
Return
它似乎总是发送常规空格($~
,或者只发送~
),或者根本不发送(只发送$
),或者根本不工作(既不发送$
,也不发送~
)
下面列出了我在相应结果中使用的$
/~
文字的不同变体:
为了方便起见,我将假装要使用字符n
而不是非换行符
按空格键时,除第一行外,上述代码保持不变:
$~空格::
- 封盖锁定关闭:发送
(良好) - 大写锁定:发送
(为什么需要额外的空间?)n
- 封盖锁定关闭:发送
$Space::
- 大写锁定:不发送任何内容李>
- 大写锁定:发送
(良好)n
~空格::
- 封盖锁定关闭:发送
(良好) - 大写锁定:发送
(为什么需要额外的空间?)n
- 封盖锁定关闭:发送
空格::
- 大写锁定:不发送任何内容李>
- 大写锁定:发送
(良好)n
第1版:
$~Space::
if (GetKeyState("CapsLock", "T") = 1)
{
send, { } ; non-break space
}
else
{
send, { } ; regular space
}
return
$~Space::
if (GetKeyState("CapsLock", "T") = 1)
{
Send, {Backspace}
send, { } ; non-break space
}
else
{
send, { } ; regular space
}
return
第2版:
$~Space::
if (GetKeyState("CapsLock", "T") = 1)
{
send, { } ; non-break space
}
else
{
send, { } ; regular space
}
return
$~Space::
if (GetKeyState("CapsLock", "T") = 1)
{
Send, {Backspace}
send, { } ; non-break space
}
else
{
send, { } ; regular space
}
return
Capslock状态检查在我的代码中运行良好。我不知道规则空格和非规则空格之间有什么不同(我处理了代码“原样”中的
Send
命令),所以请检查Send的空格是否正确。
忠告:
GetKeyState
内置函数代替命令if
语句条件置于()
中{}
中使用includeif
语句体#if GetKeyState("CapsLock", "T")
$space::send n
return
希望它能有所帮助当它应该只发送
时,它也会发送两个空格(
)。您可以使用任何字符(如“n”)代替nb空格。当caps lock关闭时,它发送
。Capslock检查在我的原始代码中也可以正常工作。问题是它总是要么随nb空间一起发送规则空间,要么不一起发送规则空间。@laggingreflect请尝试第2版。我想它能满足你的需要。太好了!旁注:需要另一个#if
来结束条件语句