AutoHotKey自动热键(九)自动执行段-持续状态-默认设置-折行

请添加图片描述
关于autohotkey里面的运行有自动执行的概念,有些代码放在其它地方无法执行,这就是脚本只有一定范围内自动执行,根据脚本的内容脚分为持续状态与非持续状态

先讲一个关于Control/Alt/Shift三键的小问题


单独设置Control/Alt/Shift三个键

单独设置Control/Alt/Shift三个键,直接写是默认弹起时执行
在前面加上~符号就变成了按下时触发(Control可以替换为Alt或Shift)

Control::
    SendInput, 在Control弹起时触发
Return

~Control::
    SendInput, 在Control按下时触发
Return

下面这个与上面这个不能同时存在,实际上是属于同名,只是添加了一个原义符,两个触发时机就变了


自动执行段

自动执行段 = 脚本代码在双冒号::或者Return或者Exit之前的段落,看哪个出现在第一个

所以上一章中的ToolTip必须要放在自动执行段内

ToolTip, 脚本已经重启
Sleep, 1000
ToolTip

^u::123456

上面这个例子中第一二三四行都属于自动执行段,因为第五行出现了双冒号


脚本的运行状态

脚本的运行状态分为<持续/非持续>

  • 一行代码都不写,在启动之后,直接判定为<非持续>,继而脚本直接被终结关闭,可以自行尝试
  • 在空脚本中加上#Persistent后,在启动之后,直接判定为<持续>,继而脚本不会自动关闭,可以看到小图标里面还是在运行脚本,进程进面还一直保持运行中,脚本中带上#Persistent就会直接判定为执行运行
#Persistent
  • 判定为<持续>的条件
    • 热键 (例^a:: )
    • 热字串 (:🔤:123456789)
    • GUI
    • 自定义菜单
    • 计时器
      只要存在以上五种内容,脚本即会判定为持续监听,不会自动关闭

默认设置

自动执行段时若设置以下内容都会改变默认设置,如果没有写则会加载默认设置

功能 说明 默认值
DetectHiddenWindows 设置脚本是否可以“看见”隐藏的窗口。 Off
DetectHiddenText 设置在探测窗口时窗口中隐藏的文本是否“可见” On
SetTitleMatchMode 设置在类似 WinWait 命令中 WinTitle 参数的匹配模式。 1/fast
SetBatchLines 设置脚本的执行速度(影响 CPU 使用率)。 10ms
SendMode 设置send模式 Event
SetKeyDelay 设置每次 Send 和 ControlSend 发送键击后自动的延时 10ms
SetMouseDelay 设置每次鼠标移动或点击后自动的延时。 10ms
SetWinDelay 设置在每次执行窗口命令如 WinActivate后自动的延时。 100ms
SetControlDelay 设置在每次控件修改命令执行后自动的延时。 20ms
SetDefaultMouseSpeed 设置在 Click 和 MouseMove/Click/Drag 中没有指定鼠标速度时使用的速度。 2ms
CoordMode 为多个命令设置坐标模式,相对于活动窗口还是屏幕。 Screen
SetStoreCapslockMode 设置在 Send 后是否恢复 CapsLock 的状态。 on
AutoTrim 设置在 Var1 = %Var2% 这样的语句中进行赋值时是否忽略 Var2 的前导和尾随空格和 tab。 on
SetFormat 设置数学运算得到的整数和浮点数的格式。 十进制/6位小数
StringCaseSense 设置在字符串比较中是否区分大小写(默认为“不区分大小写”)。 off
Thread 设置线程的优先级或是否可以被中断。它也可以临时禁用所有的计时器。 -
Critical 防止当前线程被其他线程中断。 on

避坑: 必须转义与末尾注释

  • 逗号和百分号必须转义
    由于逗号和百分号具有特殊含义,因此需要使用`, 指定原义逗号,使用 `% 指定原义百分号

  • 末尾注释
    末尾注释必须有空格或者TAB 如
    不可以直接在notepad后直接带分号,这样是不许可的,必须带上

    • TAB
    • 空格
Run Notepad      ; 这是和命令在同一行的注释.

代码折行

用一个例子解释代码折行

if (1 = 2
    or 2 = 2
    and ( 1+1=2 )
    ?True
    :false)
{
str =
(
这是第一行
这是第二行
这是第三行 `n这是第四行
)
    MsgBox
    , 1
    ,提示
    , %str%
    , 10
}

在这里插入图片描述
像上面这样子的代码也是可以的,支持折行的开头代码有以下

  • or (逻辑运算符或)
  • and (逻辑运算符和)
  • ? (三目运算符)
  • : (三目运算符)
  • , (逗号参数分隔符)
  • ( (大段文字括号符)

相关推荐

  1. autohotkey自动化执行vim命令

    2024-07-12 19:52:02       23 阅读
  2. centos将sh文件设置为开机自动执行

    2024-07-12 19:52:02       44 阅读
  3. linux 设置开机自启终端,并自动执行命令

    2024-07-12 19:52:02       31 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-12 19:52:02       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-12 19:52:02       71 阅读
  3. 在Django里面运行非项目文件

    2024-07-12 19:52:02       58 阅读
  4. Python语言-面向对象

    2024-07-12 19:52:02       69 阅读

热门阅读

  1. 如何部署本地dockers镜像源

    2024-07-12 19:52:02       19 阅读
  2. CAD二次开发(12)- 块的定义和使用

    2024-07-12 19:52:02       17 阅读
  3. MySQL在Windows系统上的详细安装指南

    2024-07-12 19:52:02       16 阅读
  4. ubuntu 换源

    2024-07-12 19:52:02       23 阅读
  5. Elasticsearch进阶学习

    2024-07-12 19:52:02       14 阅读
  6. 面向对象进阶基础练习

    2024-07-12 19:52:02       21 阅读
  7. RGB树-美团2023笔试(codefun2000)

    2024-07-12 19:52:02       25 阅读
  8. python输出/sys/class/power_supply/BAT0/电池各项内容

    2024-07-12 19:52:02       19 阅读
  9. ArcGIS Pro SDK (八)地理数据库 6 版本控制

    2024-07-12 19:52:02       23 阅读