autohotkey 線程入門


  • 自動熱鍵本身不做任何事情;它需要一個腳本來告訴它要做什么,每個熱鍵后面都跟着一個或多個熱鍵,當按下熱鍵時可以采取這些操作。
  • 腳本是一個簡單的純文本文件,擴展名為.ahk,包含程序的指令,類似於配置文件,但是功能更強大。
  • 腳本可以只執行一個操作,然后退出。多數腳本都定義了許多熱鍵,每個熱鍵后面都跟着一個或多個熱鍵,當按下熱鍵時可以采取這些操作。
  • https://www.autohotkey.com/docs/AutoHotkey.htm
  • 復雜功能設計需要多線程和定時器、中斷、線程同步控制
  • 定時器+信號量
    XXX up::
    {
    if ( XXX_flag ) {
    ...
    return
    }
     
    XXX_flag :=True
    ...
    SetTimer, XXX_time, -time
    return
    }
    XXX_time:
    {
    ...
    XXX_flag :=False
    return
    }
    異步檢測 InputHook 或者 異步通知
    異步通知
    ~XXX::
    {
    if ( XXX_msg ) {
    ...
    return
    }
    SetTimer, XXX_time, -time
    XXX_msg :=True
    ...
    return
    }
    ~XXX up::
    {
    ...
    if( !XXX_msg )
    { }
    }
    XXX_time:
    {
    ... ; chck msg
    }
    狀態機套娃。
    MButton::return
    MButton up::
    {
    if( !MButton_flag ) {
    ..
    MButton_flag :=True
    return
    }
    ...
    MButton :=False
    return
    }
    一個硬件標志位配合時間信息可以跳轉執行的多個服務數
    狀態機+異步信號,
    子狀態接收異步信號跳往對應下一態
    定時器檢測硬件標志,配合狀態機1跳轉相應狀態,單擊、雙擊、多次擊鍵。
    定義:單擊按鍵,雙擊按鍵,3擊及其它。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM