AutoHotkey 熱字串的常用選項與指引功能(AHK #2)

AutoHotkey 文件網頁

AutoHotkey的文件網頁是:https://www.autohotkey.com/docs/AutoHotkey.htm
可按上方的【en】→【zh】以切換為簡體中文說明。

啟動

將要使用的.ahk檔案以建立捷徑的方式加到啟動資料夾,讓每次開機後都能生效。
在檔案總管位址欄輸入shell:startup就能快速切換到啟動資料夾。

右鍵功能表

安裝AutoHotkey後,.ahk的右鍵功能表會有Compile Script、Edit Script等選項。

  • Compile Script會產生與腳本檔同名的.exe檔案。
  • Edit Script會以Notepad開啟腳本檔供編輯

熱字串選項

:選項:熱字串::擴展後字串
按鍵:: 執行的動作

熱字串的控制選項是在第一個冒號後面,常用的有下列幾種:

選項 功能 範例
* 不需要觸發字元 :*:,ks::高雄
O 不輸出觸發字元 :O:,pc::電腦
C 區分大小寫 :C:,pc::電腦,,PC無效
R 原樣輸出 :R:,dear::各位同仁,{enter}
B0 擴展後不刪除熱字串 :*B0:<li>::</li>{left 5}

使用在特定應用程式的熱字串

使用AutoHotkey的指引 #IfWinActive ahk_class 應用程式的類別名稱。

#IfWinActive ahk_class Notepad
::,t1::輸出在Notepad
#IfWinActive
::,t1::輸出在其他的應用程式
  • 問題:如何得知應用程式的類別名稱呢?
  • 解答:使用AutoHotkey安裝目錄裡的WindowSpy.ahk
  • 設定:AutoGUI 【Tools】→【Configure Tools...】→【New...】,加入WindowSpy.ahk
  • 執行:執行WindowSpy.ahk,再把游標移到要偵測的應用程式即可取得 ahk_class

指引(Directive)是什麼?有何作用?

指引是指示AutoHotkey如何來設置腳本檔案的環境,可以當成是這個腳本檔的參數設定。

指引 功能說明
#SingleInstance Force 強制只使用一個執行實例,
是否覆蓋的對話窗不再出現
#IfWinActive ahk_class 應用程式類別 指定的應用程式是否擁有輸入焦點
#NoEnv 啟始環境變數,建議使用以取得更佳效能

詳細的操作影片

▼ AHK #1

##

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

簡睿

服務於軟體業的資訊老兵。興趣廣泛,學習力佳,樂於分享所知所學。

您可能也會喜歡…

9 個回應

  1. 小陳表示:

    簡先生:您好!
    非常感謝您的熱心,小弟發問後簡先生您隨即回覆,實在讓小弟感動不已,衷心感謝您。

    昨天上來下載您的指令後,經反覆測試,再嘗試修改再測試,一樣都未能連接到網頁。
    有時技術分析圖可連上網頁有時則不能,走勢圖擇則大都未能連上網頁,測試多次後
    小弟只能安慰自己說隔行如隔山,這個小弟還差得遠,小弟不是搞電腦軟體的料,所
    以只得再上網到處逛逛了。

    看看簡先生您寫的指令都對啊,就是摸擬鍵盤或滑鼠的動作啊,但是不知為什麼就是
    連不上網頁啊,很無奈啊,好了就先這樣了,無論如何都非常感謝您的幫忙,謝謝您。

    • 簡睿表示:

      上面的F4按鍵是在某支股票的網頁裡按的,我以為你應該已能用錄製器開好網頁了…

      手動開股票的話,再加一個F3按鍵(把要觀察的股票代號加在?s=後面):


      f3::
      run https://tw.stock.yahoo.com/q/bc?s=1526
      run https://tw.stock.yahoo.com/q/bc?s=3229
      ;; ... 要開幾個網頁就輸入幾行 run 指令
      return

      將上述指令用記事本存成 stock2.ahk後,double click stock2.ahk (當然必須先安裝了 autoHotkey.exe)
      再按 F3。瀏覽器會顯示輸入的run 網頁,在某個網頁裡按 F4 則會再開啟技術分析等網頁(double click stock1.ahk)。

      把 f3、f4都寫到同一個 stock.ahk後,只要double click stock.ahk就能用f3、f4按鍵了。

  2. 小陳表示:

    看了幾次之後,小弟認為簡先生實是在很用心,讓小弟看完後覺得揪感心,
    這使得小弟真有受寵若驚的感覺。

    小弟相信,這2個 youtube 影片是為小弟特地錄製的,尤其是<不用寫程式的
    AutoHotkey 腳本錄製器>讓完全外行者立刻也照著可操作,太受用了,小弟
    只是從網路搜尋得知簡先生的部落格,小弟就上來討教,竟勞煩簡先生如此的
    熱心幫忙,真不知該如何感謝才好。

    至於 Link Buncher 似乎只能安裝在 chrome 上,這個功能類似火狐的 snap,
    小弟用的是火狐,小弟在最常去的論壇請教,有人建議用 snap ,要開啟一段
    就將那一區間圈起來放開就可全開啟,其餘單支股票就按 Ctrl 再點超鏈結,
    就可全開啟了,小弟用了 snap_links_plus 之後,發覺功能不錯,所以現在
    就用 snap 了。

    至於,幫簡先生宣傳創作,那自是義不容辭的, AutoHotKey 指令雖然有人會
    寫,但幫人客製化的我相信絕對很少,光憑這點小弟相信貴部落格絕對比其他
    的部落格好太多了,小弟將在最常去的論壇給予宣傳貴部落格。

    另外,不知是否可以再麻煩簡先生指導寫 AutoHotKey 另一個指令,小弟希望
    的是,小弟按著 ctrl 點擊後即可開啟該股的走勢圖與技術分析圖(技術分析在
    走勢圖表上面,其中有第二個選項就是技術分析,點擊後可開出技術分析圖。)
    ,期盼您能給予繼續指導,感激不盡!謝謝您。祝您 鴻圖大展

    • 簡睿表示:

      分析網址後發現只是在 /q/ 後面兩個英文字有不同,例如技術分析是 /q/ta,成交明細是 /q/ts,因此可以如下處理:


      #SingleInstance Force

      f4::
      WinGetTitle, sTitle, A ; 取出網頁標題,如:中環(2323) - 個股走勢 - Yahoo!奇摩股市
      iPos1 := InStr(sTitle, "(") ; 找到左括號位置
      iPos2 := InStr(sTitle, ")") ; 找到右括號位置
      sStockID := Substr(sTitle, iPos1+1, iPos2-iPos1-1) ; 取出括號中間的股票代號
      ;;MsgBox %sTitle%; ID=%sStockID%
      Run https://tw.stock.yahoo.com/q/ta?s=%sStockID% ; 技術分析
      Run https://tw.stock.yahoo.com/q/ts?s=%sStockID% ; 成交明細
      return

      其他幾個也可看網址再自行加入。把上列程式存成stock1.ahk後執行,到個股網頁按〔F4〕會開啟其技術分析與成交明細網頁。

  3. 小陳表示:

    無論如何,都先謝謝您。

    剛剛看了一次,
    還是不太懂,
    不過真的非常感謝您的熱心,
    還特地為小弟錄製了影片,
    實在是感動到不行,
    請容小弟再看幾次再來跟您回覆,
    小弟先在這裡跟您拜謝了,
    非常非常的感謝您。

  4. 小陳表示:

    非常感謝您的回覆,謝謝您。小弟因為有其他附件的關係所以用火狐,因此 Link buncher 似乎不適用於小弟。
    小弟因為對電腦程式幾近是完全外行,所以要用AutoHotkey 寫 MouseGetPos 之類的指令也完全不知該怎麼寫。
    雖然,小弟非常希望會寫<一次就可打開所有選擇的個股的走勢圖>這個指令,不知可否請簡先生幫小弟寫一下,
    當然,知識不是無價的,簡兄是否可來函說明什麼條件才能幫小弟寫,則小弟不勝感激,先謝謝您!!

  5. 小陳表示:

    簡先生:您好!
    請問:
    進入奇摩股市後 -上市https://tw.stock.yahoo.com/d/i/rank.php?t=up&e=tse&n=100
    或上櫃https://tw.stock.yahoo.com/d/i/rank.php?t=up&e=otc&n=100
    選漲幅排行裡選某幾檔股票,想要壓著window鍵,
    點擊後一次就可以用新分頁打開所有所選連結的網頁,
    也就是打開了所有選擇的個股走勢圖,而不是用附件打開走勢圖,

    例如:
    108/05/24收盤 上市排行
    1是5283 禾聯碩
    2是4968 立積
    3是6558 興能高

    9是5876 上海商銀
    10是3041 揚智

    上櫃排行
    1是 3288 點晶
    2是 3191 和進
    3是 5475 德宏

    請問這AutoHotKey指令該如何寫呢?非常感謝您!感恩!

    • 簡睿表示:

      可以先試Chrome瀏覽器的外掛:Link buncher,參考:https://briian.com/34496/link-buncher-00/

      移到要瀏覽的連結處按Shift,最後再到被標示的連結處Click,會一次打開所有被標示的連結。

      若用AutoHotkey,應該是用 MouseGetPos之類的指令:

      MouseGetPos, x, y, id, control

發佈留言

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