快捷登錄,享 免費(fèi)下載
首頁 > 軟件列表 > AutoHotkey
AutoHotkey

AutoHotkey

軟件語言:英文版
軟件授權(quán):免費(fèi)軟件
適用系統(tǒng):Windows
創(chuàng)建時(shí)間:2020-12-14
軟件廠商/開發(fā)者信息:獨(dú)立開發(fā)者

平臺簡介

AutoHotkey 是一款免費(fèi)的、Windows平臺下開放源代碼熱鍵腳本語言。

功能

通過發(fā)送鍵盤或鼠標(biāo)的鍵擊動作命令來實(shí)現(xiàn)幾乎所有操作的自動化。您可以自己編寫 宏(AutoHotkey Script) 或者使用宏錄制器(AutoScriptWriter)來生成;

為鍵盤,游戲操縱桿和鼠標(biāo)創(chuàng)建熱鍵。 事實(shí)上任何的按鍵、按鈕或組合鍵都可以被設(shè)置為熱鍵;

可以對Windows各類型窗口進(jìn)行匹配以及相關(guān)屬性調(diào)整(例如:透明、隱藏、置頂、改變大小等);

當(dāng)鍵入您自定義的縮寫時(shí)可以 擴(kuò)展縮寫。例如, 鍵入“btw”就可以自動擴(kuò)展為“by the way”;

創(chuàng)建自定義的數(shù)據(jù)輸入表格、用戶界面、菜單等標(biāo)準(zhǔn)控件以及ActiveX 組件(例如IE瀏覽器控件)等。詳情請看 圖形界面 部分;

映射 鍵盤、游戲操縱桿和鼠標(biāo)上的按鍵或按鈕;

運(yùn)行現(xiàn)有的AutoIt v2腳本并用 新功能 來增強(qiáng)它們;

將腳本文件編譯 成EXE可執(zhí)行文件,使得程序在沒有安裝AutoHotkey的機(jī)器上得以運(yùn)行;

借助 相關(guān)工具 以實(shí)現(xiàn)更強(qiáng)大的功能;

更多關(guān)于熱鍵的說明

AutoHotkey 可令鍵盤、游戲操縱桿和鼠標(biāo)的所有潛能都發(fā)揮出來。例如,除了典型的Control、Alt和Shift鍵之外,你還可以定義Win鍵(徽標(biāo)鍵)和Capslock鍵作為調(diào)節(jié)鍵。 而實(shí)際上你還可以設(shè)置任意的鍵盤按鍵或鼠標(biāo)按鍵作為調(diào)節(jié)鍵。詳細(xì)內(nèi)容請看 高級熱鍵 部分。

其他功能

基本用法:

關(guān)閉或屏蔽Windows自有的快捷鍵,例如Win+E和Win+R;

取替Alt-Tab(通過按鍵、鼠標(biāo)滾輪或按鈕)從而減輕RSI(肢體重復(fù)性勞損);

本機(jī)代碼互操作:

可以調(diào)用COM和DLL對象進(jìn)行功能擴(kuò)展;

可以創(chuàng)建機(jī)器碼地址,當(dāng)它被調(diào)用時(shí)會重定向到腳本中的函數(shù);

可以復(fù)制字符串到內(nèi)存地址或來自內(nèi)存地址,并可以對其在指定代碼頁間進(jìn)行轉(zhuǎn)換;

文件、目錄和磁盤管理:

讀取、寫入、復(fù)制、刪除、獲取設(shè)置屬性以及解釋文本文件比起其他語言更容易;

提供面向?qū)ο蟮奈募蘒/O操作;

支持驅(qū)動器彈出以及獲取驅(qū)動器列表、容量、剩余空間、文件系統(tǒng)、卷標(biāo)、序列號、類型、狀態(tài)等;

可對IN文件(配置信息文件)進(jìn)行讀寫操作。

流程控制:

多種條件判斷(字符項(xiàng)目、窗口、文件、進(jìn)程、錯(cuò)誤返回值等),條件下采用{}區(qū)塊以及制表符進(jìn)行分層級;

可以配合變量進(jìn)行多級循環(huán)復(fù)雜操作;

可以與一般編程一樣創(chuàng)建自定義函數(shù)并調(diào)用;

圖形界面:

使用您喜歡的圖標(biāo)、工具提示(ToolTip)、菜單項(xiàng)目和子菜單來自定義托盤圖標(biāo)菜單;

顯示對話框、工具提示(Tooltips)、氣球提示以及彈出菜單,與用戶交互;

可以置頂自定義圖片來做程序啟動界面;

鼠標(biāo)和鍵盤:

可以禁用或啟用用戶通過鍵盤和鼠標(biāo)對電腦進(jìn)行操作而腳本不受影響。

用游戲操縱桿或鍵盤代替鼠標(biāo);

可以對窗口中的指定控件進(jìn)行點(diǎn)擊、改變文字等操作而不會出現(xiàn)鼠標(biāo)點(diǎn)擊事件;

數(shù)學(xué)相關(guān):

可以進(jìn)行一些科學(xué)運(yùn)算(如三角函數(shù)、平方根、冪運(yùn)算、e^N等);

屏幕管理:

通過檢測圖像和象素色彩來自動執(zhí)行游戲中的動作;

進(jìn)程管理:

執(zhí)行腳本動作來響應(yīng)系統(tǒng)關(guān)閉或注銷;

使用RunAs方式指定運(yùn)行用戶身份;

可以對進(jìn)程進(jìn)行是否存在、列表、優(yōu)先級、等待運(yùn)行、等待結(jié)束操作;

注冊表:

可以循環(huán)讀取注冊表并操作;

可對注冊表進(jìn)行讀寫、刪除操作。

聲音命令:

調(diào)節(jié)音量、設(shè)置靜音,以及其他關(guān)于聲卡的設(shè)置;

可以播放wav音頻;

字符串管理:

可以定義字符串變量對字符串變量進(jìn)行截取、替換、正則表達(dá)式匹配、大小寫改變等處理;

可以生成隨機(jī)數(shù),用戶可以根據(jù)隨機(jī)數(shù)生成自定義隨機(jī)字符;

獲取并改變剪貼板的內(nèi)容,包括從資源管理器中復(fù)制的文件的名稱;

針對一組與通配符匹配的文件進(jìn)行操作;

窗口管理:

可以檢測窗口是否處于各種狀態(tài)(激活、最大化、存在、隱藏等);

可以獲取窗口的標(biāo)題、ahk_class、文字等相關(guān)信息方便鼠標(biāo)等操作;

可以對窗口進(jìn)行最大化、激活、隱藏、關(guān)閉、強(qiáng)制關(guān)閉、等待等相關(guān)操作;

其他:

可以獲取系統(tǒng)環(huán)境(如幕分辨率、多顯示器信息、系統(tǒng)對象的尺寸和其他系統(tǒng)屬性)相關(guān)信息并執(zhí)行預(yù)定操作;

監(jiān)控您的系統(tǒng)。例如,當(dāng)您不希望見到的窗口出現(xiàn)時(shí)自動關(guān)閉它們;

可以設(shè)置定時(shí)器并啟用、停用該項(xiàng)目;

檢測系統(tǒng)空閑時(shí)間。例如,在系統(tǒng)空閑的時(shí)候執(zhí)行高CPU負(fù)荷的任務(wù);

你只要有想像力,它可以完成更多工作。

兼容性

在 Windows 95/98/Me 下,一些 高級功能例如鼠標(biāo)熱鍵和 熱字串 -- 在Win9x 平臺將失效。

在Window8/8.1環(huán)境下,BlockInput會失效。

在Windows RT操作系統(tǒng)上,需要越獄并下載指定編譯版本Autohotkey,手動注冊相關(guān)注冊表項(xiàng)后

即可使用,不保證所用命令有效。

注意事項(xiàng)

1、在字符串賦值時(shí),使用a=b這種方式時(shí),“"”(英文雙引號)、“,”(英文逗號)需要轉(zhuǎn)義,轉(zhuǎn)義符為“·”(Tab上面,1左邊的字符),等同于其他語言的“\”。其他要轉(zhuǎn)義的字符:回車“`r”,換行“`n”,制表符“`t”,空格“%A_Space%”,非注釋分號“`;”,非引用百分號“`%”。

2、AHKer在接觸AHK可能接觸過其他語言,會有書寫方面的問題。建議按照標(biāo)準(zhǔn)書寫風(fēng)格書寫并嚴(yán)格使用制表符以及區(qū)塊進(jìn)行分層。語句各屬性項(xiàng)目嚴(yán)格使用英文逗號分隔而不是空格,這會大大減少錯(cuò)誤情況。

3、使用AutoScriptWriter錄制的腳本可能會用語句冗余以及操作時(shí)間不當(dāng)?shù)炔僮?,可以作參考并適當(dāng)添加win相關(guān)命令以及PixelGetColor、ImageSearch等命令在恰當(dāng)?shù)臅r(shí)機(jī)操作。

4、窗口以及像素相關(guān)操作(如鼠標(biāo)點(diǎn)擊)默認(rèn)為相對當(dāng)前活動窗口,一些操作可能會錯(cuò)誤。需要默認(rèn)為全屏幕,請?jiān)谀_本頭添加:

CoordMode,Pixel,Screen
CoordMode,Mouse,screen

5、腳本運(yùn)行時(shí),默認(rèn)會有任務(wù)欄圖標(biāo)及相關(guān)右鍵菜單,如不需右鍵菜單,請?jiān)谀_本頭添加Menu, Tray, NoStandard;如不需要顯示任務(wù)欄圖標(biāo),請?jiān)谀_本頭添加#NoTrayIcon。

翻譯進(jìn)度

原英文幫助CHM文件被解壓后,除去19個(gè)腳本頁面,共計(jì)254個(gè)HTML網(wǎng)頁文件。

待翻統(tǒng)計(jì):

命令:220個(gè)共1.22M,剩79個(gè)共717K

雜項(xiàng):18個(gè)共172K,剩14個(gè)共156K

根目錄下:16個(gè)共366K,剩7個(gè)共221K

html 文件總計(jì):254個(gè)頁面共1.75M

未翻:100個(gè)頁面共1.07M,約61.14%

已翻:154個(gè)頁面共0.68M,約38.86%

主分支的版本幫助已完全翻譯完畢, 翻譯詳情及下載請至AutoHotkey中文論壇

*AutoHotKey已推出中文版幫助,AHK版本v1.1.13.00。該中文幫助由 amnesiac 更新。

計(jì)劃

(1)將官方論壇中Tuncay大大收集的Ahk Standard Library Collection(當(dāng)前版本:201009181732)集成到幫助文件, 已放出第一個(gè)測試版, 歡迎下載及提供意見和建議!

(2)由于1.0.48.05版本主分支已經(jīng)停止更新近一年, 而AutoHotkey_L分支持續(xù)更新, 增加了許多重要的特性, 因此接下來計(jì)劃翻譯其幫助文件.

新特性

流程控制
BreakLoopLabel退出一個(gè)循環(huán)或任意數(shù)目的嵌套循環(huán).
ContinueLoopLabel繼續(xù)循環(huán), 即使在任意數(shù)目的嵌套循環(huán)中.
Forx,yinz從頭到為尾循環(huán)對象的內(nèi)容.
Loop Until循環(huán)直到條件為真. 可用于任意類型的循環(huán).
Try...Catch提供結(jié)構(gòu)化的異常處理機(jī)制.
Throw拋出異常.
命令
FileEncoding為FileRead、FileReadLine、Loop Read、FileAppend和FileOpen設(shè)置默認(rèn)編碼。
另請參閱:文本編碼
Gui請參閱后面的GUI 增強(qiáng).
IniRead/Write/Delete讀取, 寫入或刪除整段, 或獲取所有段名稱組成的列表.
Menu, Icon設(shè)置或移除菜單項(xiàng)圖標(biāo).
Run改進(jìn)了參數(shù)的解析方式.
SendInput {U+nnnn}發(fā)送 Unicode 字符. 在 Unicode 版本中可以直接使用 Unicode 字符.
SendLevel控制熱鍵和熱字串是否忽略模擬的鍵盤和鼠標(biāo)事件。
SetFormat, IntegerFast, h|H設(shè)置小寫或大寫的十六進(jìn)制格式.
SetRegView, RegView允許 32 位腳本中的注冊表命令訪問 64 位注冊表視圖,反之亦然。
Transform, HTML執(zhí)行代碼頁或 HTML 轉(zhuǎn)換.
WinGet, ..., ProcessPath獲取擁有指定窗口的進(jìn)程的完整路徑和名稱.
指令
#Ifexpression類似于#IfWinActive,但可以是任意類型的表達(dá)式。
#IfTimeout設(shè)置計(jì)算單個(gè) #If 表達(dá)式可以使用的最大時(shí)間。
#MenuMaskKey改變用來屏蔽 Win 或 Alt keyup 事件的按鍵。
#Include <Lib>包含函數(shù)庫文件夾中的腳本文件.
#InputLevel控制熱鍵和熱字串是否忽略模擬的鍵盤和鼠標(biāo)事件。
#Warn啟用或禁用為選擇的情況提示開發(fā)者錯(cuò)誤的警告。
函數(shù)
ComObj...--
ComObjActive
ComObjEnwrap/Unwrap
ComObjParameter
ComObjType

獲取注冊的 COM 對象。
包裝/解開 COM 對象。
把值和類型包裝成參數(shù)傳遞.
獲取 COM 對象的類型信息.
ComObjArray創(chuàng)建用于 COM 的 SAFEARRAY。
ComObjConnect連接 COM 對象的事件源到帶有給定前綴的函數(shù)。
ComObjCreate創(chuàng)建 COM 對象。
ComObjError啟用或禁用 COM 錯(cuò)誤通告。
ComObjFlags獲取或改變控制 COM 包裝器對象行為的標(biāo)志。
ComObjGet返回由 COM 組件提供的對象引用。
ComObjQuery查詢 COM 對象的接口或服務(wù)。
ComObjType從 COM 對象獲取類型信息。
ComObjValue獲取存儲在 COM 包裝器對象中的值或指針。
Exception創(chuàng)建用于Throw的異常對象 (同時(shí)提供對堆棧的受限訪問).
FileOpen提供面向?qū)ο蟮奈募?I/O。
Func獲取函數(shù)的引用。
GetKeyName/VK/SC獲取按鍵的名稱、文本、虛擬按鍵碼或掃描碼。
InStr搜索字符串的出現(xiàn)位置,從左邊或右邊開始。
IsByRef判斷變量是否是 ByRef 參數(shù)。
IsObject判斷某個(gè)值是否為對象。
StrPut / StrGet復(fù)制字符串到內(nèi)存地址或來自內(nèi)存地址,并可選地對其在不同代碼頁間進(jìn)行轉(zhuǎn)換。
Trim移除字符串的開始和/或末尾的某些字符。
RegEx (?CNum:Func)在正則表達(dá)式進(jìn)行模式匹配期間調(diào)用函數(shù).
函數(shù)庫新的 "本地庫" 和#Include <LibName>.
可變參數(shù)函數(shù)函數(shù)可以通過數(shù)組接受可變數(shù)目的參數(shù).
靜態(tài)初始化靜態(tài)變量現(xiàn)在可以使用任意表達(dá)式進(jìn)行初始化.
對象
概述對象的常規(guī)行為和用法.
對象可以使用其他功能擴(kuò)展的關(guān)聯(lián)數(shù)組.
枚舉數(shù)可以枚舉容器中的項(xiàng)目.
文件提供訪問文件的接口.FileOpen返回文件類型的對象.
Func表示可以被腳本調(diào)用的自定義或內(nèi)置的函數(shù).
ComObject請參閱上面的 ComObj 函數(shù)。
變量
A_Is64bitOS當(dāng)操作系統(tǒng)為 64 位則值為 1(真),為 32 位則為 0(假)。
A_IsUnicode在 Unicode 版本中, 此變量值為 1 (true). 在 ANSI 版本中此變量未定義, 所以等同為false.
A_FileEncoding包含用于多種命令的默認(rèn)編碼,請參閱FileEncoding。
A_OSVersion支持 Windows 7 和 Windows 8,請參閱A_OSVersion。
A_PriorKey在最近按鍵按下或釋放前最后按下的按鍵名稱 ...(更多細(xì)節(jié))
A_PtrSize包含指針的大小, 單位為字節(jié). 此大小為 4 (32 位) 或 8 (64 位).
A_RegView由SetRegView設(shè)置的當(dāng)前注冊表視圖。
A_ScriptHwnd腳本隱藏主窗口的唯一 ID (HWND/句柄).
數(shù)據(jù)類型
Ptr在 32 位版本中等同于Int而在 64 位版本中為Int64. 由DllCall,NumPut和NumGet所支持.
AStr,WStr僅DllCall支持,請參閱腳本兼容性。
Unicode
兼容性在 DllCall 中如何處理 Unicode 等.
腳本文件在腳本文件中使用 Unicode 編碼.
SendInput在 SendInput 中使用 Unicode.
其他
ahk_exe窗口可以通過擁有此窗口的進(jìn)程名稱或路徑 (EXE 文件) 進(jìn)行標(biāo)識.
調(diào)試交互式調(diào)試功能 (單步執(zhí)行等).
錯(cuò)誤處理Try/catch/throw 和增加的 A_LastError 可用性.
GUI 增強(qiáng)對 Gui 命令和相關(guān)部分的多方面增強(qiáng).
圖標(biāo)支持資源標(biāo)識符和改進(jìn)的對各種圖標(biāo)大小的支持.
其他變更影響腳本兼容性的改變.
版本歷史AutoHotkey_L 的修訂歷史.

錯(cuò)誤處理

許多命令支持使用 try/catch 代替 ErrorLevel 進(jìn)行錯(cuò)誤處理. 例如:

try

{

FileCopy, file1.txt, C:\folder

FileDelete, C:\folder\old.txt

}

catch

MsgBox An error occured!

此外, 后面的這些命令設(shè)置 A_LastError 來輔助調(diào)試: FileAppend, FileRead, FileReadLine, FileDelete, FileCopy, FileMove, FileGetAttrib/Time/Size/Version, FileSetAttrib/Time, FileCreateDir, RegRead, RegWrite, RegDelete.

函數(shù)庫

除了 %A_MyDocuments%\AutoHotkey\Lib 的用戶庫和在 AutoHotkey 目錄的標(biāo)準(zhǔn)庫外, 函數(shù)還可以從 %A_ScriptDir%\Lib 中的 "本地庫" 自動加載. 想了解更多信息, 請參閱 函數(shù)庫.

#Include <LibName> 可以明確加載函數(shù)庫中任意一個(gè)庫文件.

GUI 增強(qiáng)

對 Gui 命令和相關(guān)部分進(jìn)行了一些增強(qiáng):

引用 GUI 時(shí)可以用 名稱或 HWND 代替介于 1 和 99 之間的數(shù)字.

Gui, New 創(chuàng)建新的匿名 GUI.

可以創(chuàng)建任意數(shù)目的命名或匿名 GUI.

新 GUI 選項(xiàng): +HwndOutputVar, +ParentGUI

GUI 的擁有者可以為任意窗口: +Owner%HWND%.

Gui, Font 可以控制文本的反鋸齒效果.

支持像 Internet Explorer WebBrowser 這樣的 ActiveX 控件.

GuiControlGet, OutputVar, Name 獲取與 GUI 控件關(guān)聯(lián)的變量名.

在 Gui menus 中使用像 Ctrl+O 這樣的鍵盤快捷鍵時(shí)會自動得到支持.

字體品質(zhì) 可以通過 Font 子命令控制.

靜態(tài)變量

靜態(tài)變量可以使用任意表達(dá)式進(jìn)行初始化. 例如:

Sleep 500

MsgBox % Time() "ms since the script started."

Time() {

static Tick := A_TickCount

return A_TickCount - Tick

}

文本編碼

FileRead, FileReadLine, Loop Read 和 FileAppend 支持 Windows 所支持的大部分文本編碼, 而不限于系統(tǒng)默認(rèn)的 ANSI 代碼頁. 可以用 FileEncoding 設(shè)置默認(rèn)編碼, 此設(shè)置在 FileRead 和 FileAppend 中可以使用如下方法覆蓋:

FileRead, OutputVar, *Pnnn Filename

FileAppend [, Text, Filename, Encoding]

此處 nnn 必須是數(shù)值的 代碼頁標(biāo)識符, 而 Encoding 遵循與 FileEncoding 相同的格式.

另請參閱: 腳本兼容性

可變參數(shù)函數(shù)和函數(shù)調(diào)用

可變參數(shù)函數(shù) 可以通過數(shù)組接受可變數(shù)目的參數(shù), 而 可變參數(shù)的函數(shù)調(diào)用 可以用來傳遞可變數(shù)目的參數(shù)給函數(shù).

圖標(biāo)支持的改進(jìn)

不常見的大小

可以從可執(zhí)行文件中提取操作系統(tǒng)支持的任意大小的圖標(biāo)資源. 當(dāng)圖標(biāo)組中存在多種大小的圖標(biāo)資源時(shí), 則使用其中最合適的大小. 在修訂號 17 之前的版本中, 系統(tǒng)先選擇任意的圖標(biāo)資源, 接著調(diào)整到系統(tǒng)的大圖標(biāo)尺寸, 然后調(diào)整回請求的尺寸.

資源標(biāo)識符

使用負(fù)數(shù)的圖標(biāo)編號可以標(biāo)識可執(zhí)行文件中的一組圖標(biāo)資源. 例如, 下面的語句設(shè)置托盤圖標(biāo)為 ahk 文件的默認(rèn)圖標(biāo).

Menu, Tray, Icon, %A_AhkPath%, -160

版本列表