首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >CapsLock密钥代码支持请求

CapsLock密钥代码支持请求
EN

Stack Overflow用户
提问于 2019-06-16 23:14:11
回答 1查看 62关注 0票数 2

请求支持:我之前在Win7专业版64位系统上修改了以下AutoHotkey脚本。使用此脚本在"On“位置禁用CapsLock键(这是所需的),然后在按住几秒钟后返回到正常的开关状态。

我有一个新的Win10 64位系统,代码不再工作。如果您对以下脚本有任何建议和建议,我将不胜感激。

代码语言:javascript
运行
复制
CapsLock::
    KeyWait, CapsLock
    GetKeyState, state, CapsLock, T
    If (A_TimeSinceThisHotkey >= 5) and !(state = "D")
        SetCapsLockState, Off
    Else
        SetCapsLockState, on
Return

返回的错误代码表明只有空格和圆括号是合适的,并且,是为参数保留的。但是,如果我移除,,则会弹出其他错误。

EN

回答 1

Stack Overflow用户

发布于 2019-06-17 21:09:16

我不能得到与您相同的错误;事实上,根本没有出现任何错误。(我怀疑错误来自未显示的代码的其他部分。)然而,它也不像你所描述的那样对我起作用。我不得不将A_TimeSinceThisHotkey >= 5增加到A_TimeSinceThisHotkey >= 5000 (5秒而不是5毫秒),并将!(state = "D")更改为(state = "D") (查找"on“状态而不是not "on”("off")),以使其按照我认为的方式工作。我的理解是,如果按下它,它将锁定“开”,但不会关闭,除非按下一段时间(5秒。在这种情况下);这是正确的吗?

请注意,GetKeyState命令已弃用。为了将来的支持,您可能希望使用GetKeyState()函数。使用函数还允许您在表达式中使用它,因此不需要将其赋给变量。不管怎样,这是我的最终代码。我使用三元运算符将if语句减少到一行,但这不是必需的,如果设置它的方式,它将会起作用。

代码语言:javascript
运行
复制
CapsLock::
KeyWait , CapsLock
SetCapsLockState , % ( A_TimeSinceThisHotkey >= 5000 ) && !GetKeyState( CapsLock , T ) ? 0 : 1
Return
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56620099

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档