2006/05/11 | 分類: AutoHotkey鍵盤工具 | 點擊數: 8 / 2983
偷懶是進步的原動力,即使就像關閉視窗這樣一個簡單的動作。
先前介紹過的StrokeIt!用右鈕畫個「L」可以達成關閉視窗的目標,但今天的需求是使用鍵盤。
EscapeClose是一個按Escape鍵來迅速關閉視窗的工具,它有幾種模式:
模式一:按Escape鍵後,滑鼠游標自動到到視窗的關閉按鈕(X)處
模式二:按Escape鍵後 ,立即關閉視窗
模式三:按Escape鍵後,視窗最小化
但Escape鍵是經常使用的按鍵(例如中文輸入時的取消鍵),因此單單用一個Escape來關閉視窗實在是太危險,若是連按兩個Escape鍵應該就比較妥善了。
最後是使用AutoHotkey來完成這個需求。
先用最簡單的複合鍵 Ctrl+` (Escape鍵下方的Back Quote);WinGetActiveTitle取得目前視窗的標題,再用WinClose把此標題的視窗關閉:
^`::
WinGetActiveTitle, Title
WinClose, %Title%
return
接著用滑鼠左鈕,把左鈕(Lbutton)視同Ctrl、Shift等按鍵,按住不放後再按Escape鍵;按住不放A鍵再按B鍵的寫法是 「A & B」。
~在這裡是指示原有的左鈕仍要處理,若不加~則左鈕就整個失效了。
~LButton & Escape::
WinGetActiveTitle, Title
WinClose, %Title%
return
比照上例,我們也可以按住左鈕不放再按右鈕(RButton)來執行,以省去鍵盤的操作。
~LButton & RButton::
WinGetActiveTitle, Title
WinClose, %Title%
return
連按兩個Escape的寫法就複雜許多 :
用KeyWait讀取鍵盤輸入,如果0.5秒內不是按Escape則結束
0.5秒內按了Escape,則再讀第二個按鍵,若為Escape則關閉視窗
若第二個按鍵不為Escape則結束
~Esc::
Keywait, Escape, , t0.5
if errorlevel = 1
return
else
Keywait, Escape, d, t0.1
if errorlevel = 0
{
WinGetActiveTitle, Title
WinClose, %Title%
return
}
return
大功告成!運作起來一切正常。
在撰寫與測試期間為了方便重新載入的腳本,另外寫了個重新載入的動作:按住左鈕不放再按R鍵。
~LButton & r::
reload
return
##
[AutoHotkey] 連按兩次Escape鍵來關閉視窗
最新推荐文章于 2024-07-20 18:26:21 发布