吃燒餅沒有不掉芝麻的,想寫好程式,讓程式依你所想運行,就必須善用除錯工具。
除錯方法1: 用MsgBox
最簡單的AutoHotkey除錯,當然就是用MsgBox把變數顯示在對話窗裡來確認正確性了。
例如:
;// 把目前視窗設為置頂
!t:: WinSet, AlwaysOnTop, , A
#c::
WinGetClass, sClass, A ;//取出目前視窗的類別
WinGetTitle, sTitle, A ;//取出目前視窗的標題
sNow = %A_NOW% ;//取出目前日期時間
MsgBox 類別=%sClass%, 標題=%sTitle%, 目前時間=%sNow%
if (sClass = "CabinetWClass") {
MsgBox 檔案總管裡按 Win+C
} if (sClass = "Chrome_WidgetWin_1") {
MsgBox 網頁標題是: %sTitle%
} else {
MsgBox 目前時間是: %sNow%
}
return
除錯方法2: 用ListVars與Pause
ListVars讓AutoHotkey視窗顯示全局變數供我們檢視。
#c::
WinGetClass, sClass, A ;//取出目前視窗的類別
WinGetTitle, sTitle, A ;//取出目前視窗的標題
sNow = %A_NOW% ;//取出目前日期時間
;MsgBox 類別=%sClass%, 標題=%sTitle%, 目前時間=%sNow%
ListVars
Pause
if (sClass = "CabinetWClass") {
MsgBox 檔案總管裡按 Win+C
} if (sClass = "Chrome_WidgetWin_1") {
MsgBox 網頁標題是: %sTitle%
} else {
MsgBox 目前時間是: %sNow%
}
return
除錯方法3: 用OutputDebug
使用OutputDebug把除錯訊息導向到系統除錯檢視器。系統除錯檢視器可以到DebugView – Windows Sysinternals | Microsoft Docs下載,解開後直接執行 dbgview.exe。下列範例中的OutputDebug會將訊息顯示在DebugView視窗裡。
#c::
WinGetClass, sClass, A
WinGetTitle, sTitle, A
sNow = %A_NOW%
OutputDebug, 除錯輸出。類別=%sClass%, 標題=%sTitle%, 目前時間=%sNow%
if (sClass = "CabinetWClass") {
MsgBox 檔案總管裡按 Win+C
} if (sClass = "Chrome_WidgetWin_1") {
MsgBox 網頁標題是: %sTitle%
} else {
MsgBox 目前時間是: %sNow%
}
return
除錯方法4: 交互式除錯步驟
AutoHotkey已經提供了DBGp協定,依下列步驟執行就能建立交互式的除錯,可以逐步測試程式的正確性:
- 執行 AutoGUI.ahk
- 載入要測試的腳本(如test2.ahk)後按〔Execute〕
- 由AutoGUI功能表 【Debug】→【Start Debugging】
- 點擊行號右側以設定中斷點
- 按【Debug】→【Continue】
- 以下列指令啟動除錯Server程式:
c:\Program Files\AutoHotkey\AutoHotkey.exe /Debug test2.ahk
接著按下要測試的熱鍵,程式遇到中斷點就會停下來,我們可以用Step Over或Step Into等來逐步測試。
詳細說明與實例操作影片
##
您可能也會有興趣的類似文章
- 輕鬆學會AutoHotkey的熱鍵:熱鍵用法實例解說(AHK #4) (0則留言, 2019/05/24)
- AutoHotkey與Google+ Commander合用-以滑鼠移動訊息位置 (0則留言, 2011/10/31)
- 用AutoGUI來學習AutoHotkey!超級簡單!(AHK #1) (0則留言, 2019/05/14)
- 快速建立個人常用詞庫-AutoHotkey 熱字串小工具:HotString Helper(AHK #3) (0則留言, 2019/05/18)
- AutoHotkey 熱字串的常用選項與指引功能(AHK #2) (0則留言, 2019/05/17)
- [Mattermost 教學#5] 方便的斜線命令與AutoHotkey (0則留言, 2018/04/17)
- 用AutoHotkey統一不同工具的偵錯功能鍵 (0則留言, 2008/03/19)
- [AutoHotkey] 在檔案總管裡按滑鼠滾輪切換到上層資料夾 (3則留言, 2011/06/23)
- AutoHotkey:在FireFox裡用鍵盤瀏覽網頁 (2則留言, 2008/03/27)
- 讓MSN的Esc鍵失效 (5則留言, 2008/10/22)
- 改寫AutoHotkey輸出中文字串的寫法 (4則留言, 2009/06/20)
- 用AutoHotkey防止因按Esc鍵而不慎誤關視窗 (0則留言, 2011/04/01)
- 輕鬆學會彈指神功-揭露AutoHotkey絕技 (59則留言, 2008/04/10)
- [Tools] 操作熱鍵與熱字串的超便利工具:AutoHotKey (13則留言, 2005/04/29)
- 關閉所有視窗的小工具:CloseAll.exe (2則留言, 2010/05/22)