偷懶是進步的原動力,即使就像關閉視窗這樣一個簡單的動作。
先前介紹過的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 |
##











太棒了!原來我想用單個esc鍵的,但是失敗了。多謝分享。給大家一個好東西。AutoHotkey漢化了一半的幫助菜單。http://pickup.mofile.com/4743716622921562
Not for VI user!
您好!由於您的文章開啟對AutoHotkey的興趣,我引用您的範例發表了一篇心得以及相關的範例於:http://bloguide.ettoday.com/jazzdog/textview.php?file=54048若您認為不妥,還煩請通知一聲我便將相關資源從網路移除!在此還是感謝您的blog提供我許多有用的資訊!
歡迎分享!
要關閉當前視窗的化用 WinClose, A就好了。
版主您好,
參考了您的指令碼,我作了一些變形的應用,但出了一些狀況,想向您請教
能不能在同一按鍵上,壓一下是一個指定功能,壓兩下是另一個指定功能,我問題發生在壓兩下除了指定的功能之外還是會發送壓一下時的指令,造成干擾,我寫的指令如下:
~LCtrl::Keywait, LCtrl, d, t0.3if errorlevel = 1Send {LWin Down}-{LWin Up}returnelseKeywait, LCtrl, d, t0.3if errorlevel = 0{send ^creturn}return
請版主為小弟指點一下迷津,感激不盡!
不好意思,我的指令碼應該是這個才對
~LCtrl::Keywait, LCtrl, d, t0.5if errorlevel = 0send #{up}elseKeywait, LCtrl, d, t0.5if errorlevel = 1send ^vreturn
沒有問題!
您肯幫忙就很謝謝了^.^
版主大人,
您寫的那一段指令,的確能解決我的問題,再次的感謝您的幫忙
剛看著您的網頁入門中,這個功能超棒,可是一直試不出來,如果只是單純想連按兩下關閉目前視窗怎麼寫
把倒數第二個黃色框框裏面copy進去都沒作用的感覺,謝謝您的網站,入門中!!
這些指令當初寫完都有測試過, 但因許久未用,不知會否與Autohotkey的版本有關?
我覺得是我不會用的可能比較大,剛試試看把條件改成比較簡單的符合就送出Alt+F4似乎可行,雖然感覺比較不智慧一點,暫時
能用就好,另外看到板主大人你回應許久未用,嚇到一下,因為想請教一下有沒有更懶的指令,想說設成按鍵按下2秒才啟動指
令,若還記得的話煩請不吝賜教~~~
許久未用指的是連按Esc兩下的這個功能啦。Autohotkey無法一日沒有它哩,按下兩秒才作用要查一下指令…