基本上,我正在寻找的是:当CapsLock开启 时我想Space返回_
并且 我想Shift+Space返回。
细节:这是这个问题我询问了将Shift+Space键重新映射为下划线 ( _) 的问题。我得到了一个很好的答案,但我发现这有点复杂,尤其是当我的小指很懒的时候,它不喜欢Shift在我按下按键时及时将自己从Space按键上拿开。所以现在我想知道是否有人知道一种解决方案,可以在打开Space时将按键重新映射为下划线。而且,更好的是,如果打开并且我按下+组合键,它将强制输入空格字符。这有意义吗?继续询问以寻求澄清。CapsLockCapsLockShiftSpace
哦,顺便说一下,我之前问的问题的解决方案可能具有这种能力。它叫做自动热键。如果这样就好了,那我就非常满意了!谢谢!
答案1
AutoHotkey 脚本:
+Space::
state := GetKeyState("CapsLock", "T")
if state
SendPlay {Space}
else
SendPlay _
return
Space::
state := GetKeyState("CapsLock", "T")
if state
SendPlay _
else
SendPlay {Space}
return
它能做什么:
如果CapsLock是不是积极的:
Space插入空格。
Shift+Space插入下划线。
如果CapsLock处于活动状态:
Space插入下划线。
Shift+Space插入空格。
如果你想Space在CapsLock不是活跃,只需消除第一个块。
如何使用:
下载并安装最新版本。
underscore.ahk
使用您最喜欢的文本编辑器将上述脚本保存为。双击该文件即可运行脚本。
如果您愿意,请复制文件夹中的脚本(或其链接)
Startup
。
怎么运行的:
+Space:: ... return
...
当按下Shift+时执行。Space+Space:: ... return
按下...
时执行(不带修饰符)。Spacestate := GetKeyState("CapsLock", "T")
检查是否CapsLock处于活动状态。如果是,
state
则执行true
其后的块。if state
如果不是,
state
则是,并且执行false
其后的块。else
SendPlay X
插入字符(序列)X
。您不能
Send
在这里使用,因为它会递归触发脚本,导致无限循环。return
在当前点终止脚本。第二个
return
是可选的,第一个不是。如果没有后者,Shift+Space会导致两个都要执行的块。
答案2
$Space::
state := GetKeyState("CapsLock", "T")
if state
Send _
else
Send {Space}
return
上面的答案对我来说也不起作用。但是这个有效。