[AHK#57] AutoHotkey v2正式釋出,2023年學習新目標

AutoHotkey v2終於在2022/12/20正式脫離Beta、Release candidates版正式推出v2.0.0版了。v2讓 AutoHotkey 的語言語法更加一致與完整,免除了v1一些不統一與怪異的作法,如果你剛開始決定學習 AutoHotkey,現在應該可以直接學習v2了。更棒的是,v2.0增強了 AutoHotkey 的整合性:讓v1與v2的執行環境能同時並存。

兩個版本的圖示不同,可以很容易區分出每個腳本的運行版本,v2圖示的H是淺綠,而v1是白色的。

gh|300

執行舊腳本時會彈出版本選擇對話窗,指定要使用的版本。
gh|300

v2的腳本模版在UX\Templates\Minimal for v2.ahk,內容如下:

/*
[NewScriptTemplate]
Description = Just #Requires v2.0
*/
#Requires AutoHotkey v2.0

可以用新的指引#Requires Autohotkey來指定執行的版本。

1. 安裝

1.1. v1, v2並存

  1. 先安裝v1,再安裝v2
    • 此狀態不限v1版本
  2. 如果安裝了v2,必須安裝v1.1.34.3(含)以後的版本,否則v2的registry設定會被覆蓋

1.2. 安裝v2

1.2.1. 安裝前準備

  1. 先確認現有AutoHotkey的運行位置,為保險起見,建議備份起來
  2. Ctrl+Shift+EscWin+X開啟工作管理員,確認執行檔資料夾

gh|700

1.2.2. 使用安裝程式

直接安裝即可。

1.2.3. 使用zip檔

  1. 執行解壓縮資料夾裡的Install.cmd
    gh|400

如果點擊【Browse】會提示最好將v2安裝在現有的v1資料夾裡。點擊Install並安裝後首先出現AutoHotkey Dash對話窗,常用的選項、工具與說明文件都會顯示出來。

安裝後AutoHotkey.exe會有兩個不同版本的檔案:

  • v1.1: 安裝資料夾\Autohotkey.exe
  • v2.0: 安裝資料夾\v2\Autohotkey.exe,是指向v2\AutoHotkey64.exe的符號連結,另有v2\Autohotkey32.exe供32-Bit的Windows使用

gh|700

  • AutoHotkey Dash的腳本檔是UX\ui-dash.ahk
  • Launch Settings: 設定程式啟動的相關設定
  • Editor Settings: 選擇預設開啟腳本檔的編輯器

2. 幾個差異

  • 字面值(Literal)不再使用:
    • 最容易讓初學者混淆的語法終於告別舞台了 👍
    • 沒有直接存取 %var% 這種用法了
var1 = 這是字串 ;不合法
msgbox %var1% ;不合法
run notepad ;不合法

v2寫法:

var1 := "這是字串"
msgbox var1
Run "notepad"
  • 熱鍵區域:要使用大括號形成匿名函數區域,左大括號可以跟按鍵在同一行或下一行
f1::Run "notepad"
f1:: {
  Run "notepad"
}
  • 沒有命令,都是函數
    • 不需要回傳值的函數可以不用參數的括號
  • 待續...

3. 相關鏈接

4. 教學影片

##

您可能也會有興趣的類似文章

您可能也會喜歡…

6 個回應

  1. Jimmy表示:

    請問autohotkey是否有可能做到
    在某個網站自動執行
    1.連續的影片播放(手動點擊)
    2.回答影片播放完後的問答
    3.輸入帳號密碼完成上課確認
    4.選擇另一個課程進行1~3的動作

    • 簡睿表示:

      網頁自動化用Selenium WebDriver做會比較容易。我有幾集AutoHotkey+Selenium整合的影片,請參考看看。

  2. TedKing表示:

    多謝分享這麼強大好用的工具,感恩

  3. tooler表示:

    想要根据应用程序listview32控件中的某个字段进行判断选择,可以有什么样的方法实现呢

    • 簡睿表示:

      類似這樣:

      WinGetTitle, ATA, ahk_exe Mattermost.exe
      WinActivate, %ATA%
      ControlGet, OutputVar, Enabled ,, Chrome_RenderWidgetHostHWND1, %ATA%

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *