如果按住足够长的时间,将自定义键映射到 shift
Posted
技术标签:
【中文标题】如果按住足够长的时间,将自定义键映射到 shift【英文标题】:Map custom key to shift if hold long enough 【发布时间】:2022-01-22 15:57:57 【问题描述】:仅当 f 键保持足够长的时间(例如 100 毫秒)时,如何将“f”键映射到“shift”键。我之所以要这样做是因为 f 键比 shift 键更容易触及...
我尝试了以下方法,但这不起作用(基于 user3419297 的回答):
$f::
time = 0
Send, f
SetTimer detect_key_released, 1 ; 1 ms timer
return
detect_key_released:
time++ ; checks the number in the variable "time" and increases it by 1 every 1 ms (in accordance with the timer period)
if (time > 100)
Send, BsShift Down
KeyWait, f ; wait for f to be released
Send, Shift Up
SetTimer detect_key_released, off
time = 0 ; reset
return
【问题讨论】:
【参考方案1】:试试这个:
$f::
Keywait, f, T0.5 ; waits 0.5 seconds maximally for f to be released
if ErrorLevel ; pressed for above that time
SendInput, Shift Down
Keywait, f ; waits for f to be released
SendInput, Shift Up
else
Send f
Return
https://www.autohotkey.com/docs/commands/KeyWait.htm
【讨论】:
您的代码有一个问题,如果您快速键入例如“fo”(意思是在 f 仍然按下时已经按下 o),那么您会得到以下输出“Of”。 您的第二个建议仍然存在写“Of”而不是“fo”的错误,正如我在第一条评论中提到的那样。我用我试过的代码编辑了我的问题,但不知何故不起作用。 尝试将第二个建议中 f 发布后的时间增加到例如1000 毫秒(1 秒):if (A_TickCount - StartTime < 1000)
.
我的想法是仅在 f 保持足够长的时间时才激活 shift。使用您的两个脚本,您可以立即激活 shift...
尝试编辑后的答案。以上是关于如果按住足够长的时间,将自定义键映射到 shift的主要内容,如果未能解决你的问题,请参考以下文章
xml Karabiner的自定义XML。使F19保持=保持选项+命令+ shift +控制。攻丝F19触发退出键。 (将`capslock`映射到键'8
Typegoose / Mongoose 将自定义类型映射到 db
如何将自定义属性添加到 Symfony Doctrine YAML 映射文件