古詩詞大全網 - 成語故事 - 如何學習 autohotkey

如何學習 autohotkey

AutoHotkey是壹個神奇的工具。為了便於新人上手,xbeta寫了此篇最最傻瓜的0級入門教程。

1 何為AutoHotkey

AutoHotkey是壹個小工具軟件,可以簡化妳的重復性工作。

比如要登錄某論壇,妳只要按壹個鍵,AutoHotkey就會替妳:打開瀏覽器、輸入網址、輸入用戶名和密碼、回車,完成登錄過程。

只要有想像力,AutoHotkey可以完成更多工作,參見 AutoHotkey,讓win+run如虎添翼,及更多文章。

2 下載及安裝

軟件名稱: AutoHotkey

軟件版本: 1.0.96.00

軟件大小: 2.5MB

軟件授權: 免費、開源

適用平臺: Windows 98-Win7

下載地址:點擊這裏下載

安裝:按提示操作即可。我習慣上裝在 d:\program files\AutoHotkey

第1屏是歡迎;點Next。

第2屏是版權聲明;點I Agree。

第3屏是版本選擇,可根據操作系統、需求,選擇合適版本。比如我在WinXP下選擇了 Unicode(32-bit)。

第4屏是安裝內容:如下圖。建議全部選中。

接下來是安裝目錄、開始菜單設置、安裝過程。

最後,是安裝成功提示:是否看幫助文件。AutoHotkey的幫助文件,寫得很細。有耐心的就認真拜讀,想成高手的必須要研讀。(更多中文譯本見這裏)

3 應用例1:提示與訪問網頁

創建腳本文件

如下圖,打開妳的文本編輯器(notepad、或gVIM),新建壹個文件,把下兩行內容復制進去。

msgbox, 這是我的第壹個AutoHotkey腳本 `n 我既關註效率,也尊重版權

run,

WinWaitActive, 網易 ;;等待網頁加載成功(至少title顯示出來)

sleep, 1000 ;;保險起見,再等1秒(視網速而定)

send, user-id{tab}password{enter};;模擬鍵入用戶名、密碼、回車

return

運行腳本……但沒有反應?沒錯,這是因為腳本中為相應命令定義了熱鍵。#1表示Win+1鍵。

按下Win+1鍵,腳本會自動打開163信箱、輸入用戶名、密碼,完成登錄。

註意:本例有實際執行中有可能不成功。因為郵箱登錄頁面可能已經保存了用戶名,甚至也保存了密碼,導致初始輸入焦點不準確。筆者實際在用的例子是登錄Lotus Notes客戶端,並輸入密碼。代碼如下:

#n::

run, "c:\Program Files\lotus\notes\nlnotes.exe"

winwait,,輸入口令

sendinput, mypassword{enter}

return

6 後記

作為0級入門教程,就寫到這裏吧。只要大家邊讀、邊動手實踐,就不難從這些例子中發現 AutoHotkey 的神奇作用。

如要再進步發掘 AutoHotkey 的魔力,可以:

(1)閱讀官方幫助文檔。

(2)參見筆者使用AutoHotkey的更多實例,AutoHotkey|win run加它更方便,AutoIT3 vs AutoHotkey,AutoHotkey調用Irfanview把24位真彩圖片優化到實際色深等。

(3)目前最全面的AutoHotkey學習資料,由 amnesiac 整理:AutoHotkey 學習指南

hotString 別名:

AutoHotKey 稱之為hotStrings ,我叫它別名,叫縮寫也可以

比如下面的幾個例子

以第壹個

::btw::by the way

為例 不論在什麽地方,當妳輸入btw然後回車或空格或TAB之後,它會自動擴展為後

面的字符串by the way剩下的幾個是公司幾個同事的Ip地址,我訪問他們的***享文件

時,只需要輸入前面幾個字母就可以了,而不用輸入難記的IP.

::btw::by the way

::liuxjs::\\172.20.68.32

::lihts::\\172.20.68.55

::wanglins::\\172.20.68.51

::wangls::\\172.20.68.51

::kanban::WClass

PostMessage, 0x111, 28931,,, A

Return

}

比如把上面的函數綁定為 Ctrl+Alt+h

^!h::toggle_hide_file_in_explore()

但是,上面有壹個問題,如果當前窗口不是資源管理器,它依然會調用這個函數,雖

然不會造成什麽惡果,但是原本這個程序的Ctrl+alt+h 也綁定了壹個功能的話,

這個功能就沒法被調用到了,因為它被AutoHotKey 攔截到了。解決辦法就是只在資源

管理器中啟用這個鍵綁定。

代碼如下

SetTitleMatchMode Regex ;可以使用正則表達式對標題進行匹配

#IfWinActive ahk_class ExploreWClass|CabinetWClass

^!h::toggle_hide_file_in_explore()

#IfWinActive

表示如果當前激活的窗口是"我的電腦"或者"我的文檔"的話,就進行下面的操作。如

果不是,就不進行。#IfWinActive是壹個結束標誌,跟

#IfWinActive ahkclass ExploreWClass|CabinetWClass 相對應。

IfWinActive/IfWinExists 內容在這。 它是判斷“符合某些條件”的“窗口”是否存有的壹個

函數。它可以通過窗口標題是否含有特定的字符串,來判斷。

如果妳用的是英文版的Windows 的話,

IfWinExist Untitled - Notepad

^h::Send , hello

#IfWinActive

這段代碼 當妳在新打開的記事本(也就是標題正好是“Untitled - Notepad”的窗

口,不能多壹個字也不能少壹個字)按Ctrl+h ,的時候,會在其中插入"hello"這個單

詞。依照正常人的思維,在中文系統裏,相應的代碼是

IfWinExist 無標題 - 記事本

^h::Send , hello

#IfWinActive

但是,AutoHotKey 對中文雖然支持,但支持的並不好。比如這個地方,中文就不好用。

剛才,進行窗口標題匹配的時候,要求整個標題必須完全匹配。,也可以做到只匹配

標題的壹部分,

通過這個命令SetTitleMatchMode 事先進行設置

比如:

SetTitleMatchMode 2

; OR:

SetTitleMatchMode RegEx

可以有 1 2 3 Fast Slow ,RegEx ,六種值

1: 表示前端匹配,

2: 表示部分匹配

3: 表示完全匹配

RegEx:表示使用正則表達式進行匹配

SetTitleMatchMode 2

IfWinExist Notepad

^h::Send , hello

#IfWinActive

這個只需要標題中含有Notepad這幾個字就可以。

壹個窗口,除了可以用標題進行匹配之外,還可以用窗口所具有的其他屬性來匹配

比如window ID ,Window Class ,進程ID. 最常用的壹個就是Window Class

但是怎樣知道壹個窗口的window class 是什麽呢? AutoHotkey 提供了壹個工具

“Window Spy”,運行這個工具,然後用鼠標點選目標窗口,就會出現這個窗口的壹些

可用信息。包括window class .

比如這張圖是鼠標點選“我的電腦”中地址欄後 的探測結果

紅色的圈起來的是“我的電腦 ”的window class .

#IfWinActive ahk_class ExploreWClass

只在"我的電腦"中起作用的代碼寫在這裏

#IfWinActive

SetTitleMatchMode Regex ;可以使用正則表達式對標題進行匹配

#IfWinActive ahk_class ExploreWClass|CabinetWClass

在"我的電腦" 有“我的文檔” 中起作用的代碼寫在這裏

#IfWinActive