1

请求支持:我修改了以下 AutoHotkey 脚本(在论坛中找到)将 CapsLock 键设置为我正在处理的数据库表(博士研究项目)的“打开”位置。使用此脚本,CapsLock 键在“On”位置被禁用,这是可取的;但是,无论 CapsLock 键按下多长时间(我使用的是 Win7),脚本功能都不会损坏,我必须退出 AutoHotkey 才能将 CapsLock 键返回到正常的开关切换状态。

如果 CapsLock 键被按下超过几秒钟,我将不胜感激任何建议的修改下面的脚本,以打破脚本“ON”循环。我是一个新的论坛用户/新手程序员,虽然我确信脚本解决方案很简单,但我不知道如何最好地进一步修改脚本代码以完成程序中断序列。建议或建议将不胜感激。

;Disable modified Caps Lock Key Script
*CapsLock::Return
;Hold Caps Lock for approximately 1 second to enable, tap to disable
CapsLock::
{
SetCapsLockState, On
Return
}
Count=0
While GetKeyState("CapsLock", "P")
{
Count++
Sleep, 1
If Count > 5
{
Send, {CapsLock}
Break
}
}
KeyWait, CapsLock
Return
4

3 回答 3

2

如果按住该脚本超过一秒钟,此脚本将启用 CapsLock,然后按任何键将其关闭。

CapsLock::
    KeyWait, CapsLock
    GetKeyState, state, CapsLock, T
    If (A_TimeSinceThisHotkey >= 1000) and !(state = "D")
        SetCapsLockState, On
    Else
        SetCapsLockState, Off
Return
于 2013-07-01T13:34:46.200 回答
1

也许最好的选择是在此键释放后切换它的状态?例如:

SetStoreCapslockMode, Off
CapsLock::
   KeyWait, CapsLock
   If A_TimeSinceThisHotkey>=1000 ; check an condition here
      Send, {CapsLock}
   Return
于 2013-07-01T07:57:45.717 回答
0

不知道为什么(你能启发吗?),但这个修改完美地工作,但切换顺序是Ctrl+CapsLock来切换开关。

;此脚本可以CapsLock锁定在开或关位置。使用Ctrl+CapsLock控制是否为大写或小写启用锁定。当大量使用 Tab 键时,单独按该CapLock键无效。

CapsLock::
    KeyWait, CapsLock
    GetKeyState, state, CapsLock, T
    If (A_TimeSinceThisHotkey >= 5) and !(state = "D")
        SetCapsLockState, Off
    Else
        SetCapsLockState, on
Return
于 2013-07-01T18:00:52.807 回答