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击及其它。
上一篇:ThinkPad 鼠标 滚轮左右倾斜切换win10 虚拟桌面


下一篇:用AutoHotkey轻松自定义播放幻灯片的其中几张(可固定前置和后置幻灯片)