2013-07-01 36 views
1

請求支持: 我修改了以下AutoHotkey腳本(在論壇中找到),以將CapsLock鍵設置爲db表的「On」位置博士研究項目),我正在努力。 CapsLock鍵在使用此腳本的「On」位置處被禁用,這是可取的;然而,無論按下CapsLock鍵多長時間(我正在使用Win7),腳本功能都不會中斷,我必須退出AutoHotkey才能將CapsLock鍵返回到正常的開關切換狀態。AutoHotkey腳本支持請求將CapsLock鍵鎖定在「On」位置

如果CapsLock鍵從多於幾秒鐘被按下,我將不勝感激任何建議的修改。我是一個新的論壇用戶/新手程序員,雖然我確信腳本解決方案是一件簡單的事情,但我很遺憾,如何進一步修改腳本代碼以完成程序中斷序列。建議或建議,將不勝感激。

;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 
+0

請將其中一個答案標爲正確。它只是有助於保持組織:-) – FakeRainBrigand

回答

1

也許最好的選擇會讓你在這個鍵釋放後切換狀態?例如:

SetStoreCapslockMode, Off 
CapsLock:: 
    KeyWait, CapsLock 
    If A_TimeSinceThisHotkey>=1000 ; check an condition here 
     Send, {CapsLock} 
    Return 
+0

灰色,艾略特; 非常感謝你們對本腳本的幫助。灰色;你的版本實際上是以我的意圖爲目標的,但Elliot;你的版本是有幫助的,因爲我的意圖是相反的,因爲當小寫字母是首選的時候,還有其他的情況,我不小心碰到了CapsLock鍵。問題解決了,我回到了研究工作的軌道上。很多,非常感謝您的幫助! Ernie –

+0

您好格雷,我不確定這是爲什麼會起作用,但您對此腳本的修改完全可以切換固定開關CapsLock關鍵功能(避免重複使用Tab鍵而意外碰到CapsLock鍵時產生的問題)但順序是Ctrl _ CapsLock來切換開關。單獨按下CapsLock鍵不起作用。修改如下所示: –

2

此腳本允許大小寫鎖定,如果持有超過一秒鐘,並與之後的任何新聞將其關閉。

CapsLock:: 
    KeyWait, CapsLock 
    GetKeyState, state, CapsLock, T 
    If (A_TimeSinceThisHotkey >= 1000) and !(state = "D") 
     SetCapsLockState, On 
    Else 
     SetCapsLockState, Off 
Return 
+0

Gray,Elliot; 非常感謝你們對本腳本的幫助。灰色;你的版本實際上是以我的意圖爲目標的,但Elliot;你的版本是有幫助的,因爲我的意圖是相反的,因爲當小寫字母是首選的時候,還有其他的情況,我不小心碰到了CapsLock鍵。問題解決了,我回到了研究工作的軌道上。很多,非常感謝您的幫助! Ernie –

0

不知道爲什麼(你能指教?),但這種修改作品完美,但切換序列是按Ctrl + CapsLock鍵切換開關。

;此腳本可以將CapsLock鎖定在打開或關閉位置。使用Ctrl + CapsLock控制是否啓用大寫或小寫鎖定。在大量使用Tab鍵的情況下,單獨按鍵僅對密鑰進行操作時不起作用。

CapsLock:: 
    KeyWait, CapsLock 
    GetKeyState, state, CapsLock, T 
    If (A_TimeSinceThisHotkey >= 5) and !(state = "D") 
     SetCapsLockState, Off 
    Else 
     SetCapsLockState, on 
Return