临时ahk笔记

7 阅读1分钟

AutoHotkey v2 手册

MsgBox “输出的消息”
; 注释
:: 分配热键
` 转义

按键列表:

win

! alt

  • shift
    ^ Ctrl ;<^左ctrl, >^右ctrl

其他修饰符:

  • *(通配符) 额外的热键按住也能触发热键。
  • ~(非抑制) 防止热键阻塞该键的原生功能.
  • $(使用钩子) 防止在发送按键时出现无意义的循环, 并且在某些情况下使热键更可靠.

自定义组合,如
Numpad0 & Numpad1::
自定义组合只支持两个键的组合,不能与其他修饰符组合,如!#^+
两个以上的可以考虑用 #Hotif

#HotIf WinActive("ahk_class Notepad") !a::MsgBox "当notepad处于激活状态时启用该热键"

#n:: ;用{}来标记块
{
if WinExist("ahk_class Notepad")
WinActivate
else Run "notepad"
}

发送击键
SendText 发送纯文本 ;逐字地敲入符号
Send 发送文本和按键 ;使用{}来表明是按键

{Blind}
Send 在发送内容前会自动释放相应热键,完成后再按下,Blind可以忽视掉这一操作

尝试使用 SendInput, SendMode,ControlSend
ControlSend Keys, Control, WinTitle
Control参数怎么指向窗口的某一个控件?
WinTitle 指定窗口标题
WinText 指定目标窗口的单个文本元素的子字符串(由包含的 Window Spy 实用程序显示)

时间延迟 Sleep
Sleep 1000 ;等待1000ms
比如等待Send操作完成。

发送大量文本
old_clip := ClipboardAll() ;前者变量,后者是自带的方法
A_Clipboard := " ;这里的()是延续片段
(this is a
loooooooooooooooooooong text
)"
Send "^v"
Sleep 500
A_Clipboard := old_clip

窗口操作
WinWait返回窗口句柄