AutoHotKey脚本初步:判断和选择

news2024/11/29 6:39:00

文章目录

    • 脚本基础
    • 连击识别
    • setTimer
    • 判断和选择

脚本基础

尽管通过窗口识别与按键映射,就可以胜任很多工作了,但AutoHotKey仍提供了一些简单的编程功能,对一些稍微复杂的任务,也可以做到得心应手。但要注意一点,AHK的V1和V2在语法上有很大差异,接下来所有内容,均适用于V2版本。

ahk中,通过;进行单行注释,通过\**\进行多行注释,而且多行注释符号只有出现在首行时才有效。

从编程的角度来说,任何编程语言都有变量,AHK亦然,但在AHK中,变量不需要声明,且变量名不区分大小写。尽管提供了字符串、数值、布尔等数据类型,但不同类型之间可自由转换,什么时候用什么类型完全视情况而定。其中,数值支持整型和浮点型,且以0x开头的整型表示十六进制。

连击识别

下面写一个简单的脚本热个身,下面这段脚本的含义是,当连续点击不同次数的大写键之后,分别弹出相应的信息

CapsLock::
{
    global
    if (A_ThisHotkey != A_PriorHotkey){
       num := 1
       return
    }
    num += 1
    SetTimer MultiPresses, -500
    Return
}

; 弹出连击次数
MultiPresses(){
    global
    MsgBox "点击" . num . "次"
    num := 0 ; num清零
    Return
}

其中,global表示开启全局模式,从而让num这个变量不局限于某个作用域。

A_ThisHotkeyA_PriorHotkey是内置变量,前者表示最近执行的热键,后者表示上一次执行的热键。

所以if语句表示,如果这一次点击的按键与上一次不同,那么说明只点击了一次CapsLock,故而将num设为1,然后退出。否则,说明上一次点击的也是CapsLock,所以num要加1。

最后调用了SetTimer函数,表示在500毫秒内如果没再按键,那么就执行MultiPresses这个函数。

MultiPresses中,弹出一个MsgBox,后面的%num%表示提取num这个变量的值,最后重置num的值。

其效果为

在这里插入图片描述

setTimer

setTimer可在指定的时间间隔内自动重复调用函数,其使用方法为

SetTimer Function, Period, Priority

其中Function即被调用的函数,Period的含义与其取值有关

  • 大于 0,定时器将自动重复,直到脚本明确禁用
  • 小于 0,定时器将只运行一次,上面的案例中,-500表示将在500ms后调用Function, 然后删除定时器。
  • 如果为0,则直接删除这个定时器。

最后一个参数Proirity表示优先级,如果只输入两个参数,则轮不到Proirity

判断和选择

在上面这个脚本中,用到了if表达式,这几乎是所有编程语言必备的分支语句了,表示判断,而且写法也高度相似,在AHK中,完整的表达式如下,如果花括号中是单行语句,则花括号可以省略。

if(){}
if(){}
else{}

此外,AHK支持switch...case语句,其语法格式为

switch SwitchValue, CaseSense
{
case CaseValue1:
    Statements1
case CaseValue2a, CaseValue2b:
    Statements2
default:
    Statements3
}

仍以连击为例,可将上式改写为

CapsLock::
{
    global
    if (A_ThisHotkey != A_PriorHotkey){
       num := 1
       return
    }
    num += 1
    SetTimer MultiPresses, 500
    Return
}

MultiPresses(){
    global
    switch num{
        case 2: MsgBox "您点击两次"
        case 3: MsgBox "您点击三次"
        case 4: MsgBox "您点击四次"
        default: MsgBox "您点击许多次"
    }

    num := 0 ; num清零
    Return
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/607118.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【操作系统】Linux 中的 Page Cache

【操作系统】Linux 中的 Page Cache 参考资料: 文件 I/O 简明概述 - page cache 进程写文件时,进程发生了崩溃,已写入的数据会丢失吗? Linux Page Cache 调优在 Kafka 中的应用 【操作系统】一文带你深入浅出零拷贝技术 【操作系…

大数据Doris(三十四):Doris配置Spark与Yarn

文章目录 Doris配置Spark与Yarn 一、Doris配置Spark 1、配置 SPARK_HOME 环境变量 2、配置SPARK 依赖包

JavaScript之BOM(八)

JavaScript之BOM 1、BOM中的对象2、window对象2.1、简介2.2、常用的属性与方法2.3、常用的事件2.4、定时器和延时器 3、navigator 常用属性与方法4、history 常用属性与方法5、location 常用属性与方法 BOM:浏览器对象模型(Browser Object Model&#xf…

交直流系统潮流计算及相互关联特性分析(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

chatgpt赋能python:Python取消合并单元格

Python取消合并单元格 在Excel中,合并单元格是一个非常常见的操作,它可以将多个单元格合并成一个单元格。这样可视化效果会更好,但是实际上会影响数据的计算和操作。如果你想取消这个操作,手工操作可能会非常费时间。不过&#x…

chatgpt赋能python:Python变量赋值

Python 变量赋值 在 Python 中,我们可以使用多种符号来给变量赋值。本文将介绍这些符号以及它们在编程中的应用。 等号() 在 Python 中,我们最常用的符号是等号(),它可以将一个值赋给一个变量…

Image fusion based on generative adversarial network consistent with perception

1.摘要 深度学习是红外和可见光图像融合领域中快速发展的方法。在这个背景下,密集块在深层网络中的使用显著提高了浅层信息的利用率,并且生成对抗网络(GAN)的组合也提高了两个源图像的融合性能。我们提出了一种基于密集块和GAN的…

“吴军讲ChatGPT“课程的个人总结

人工智能时代, ChatGPT如此火热, 大家恐慌, 焦虑, 大家最关注的是两个问题 我会不会被取代?我有没有机会? 吴军老师(浪潮之巅, 数学之美等), 有门课程, <吴军讲ChatGPT>, 用通俗易懂的语言, 讲解了人工智能的技术原理前世今生,以及当下火热的ChatGPT的可以做什么, 那…

关于windows驱动中断的几个小问题

1. intel 8259芯片中的IRQ2和int2的区别是什么&#xff1f; 答曰&#xff1a;IRQ2是芯片上的引脚&#xff0c;而int2是中断向量表的第2项&#xff0c;两者有很大区别。 Intel8259A芯片的中断引脚分别为&#xff1a; 主片&#xff1a; 0&#xff1a;8254时钟 1&#xff1a;键盘 …

chatgpt赋能python:**Python取余符号:了解%运算符的作用和用法**

Python取余符号&#xff1a;了解%运算符的作用和用法 作为一名有着10年编程经验的工程师&#xff0c;我对Python这门编程语言深有了解。在本文中&#xff0c;我将详细介绍Python的取余符号&#xff0c;即%运算符&#xff0c;其作用和用法。 什么是Python取余符号&#xff1f;…

AIGC技术研究与应用 ---- 下一代人工智能:新范式!新生产力!(2.3-大模型发展历程 之 多模态)

文章大纲 什么是多模态stable diffusion“ CLIP 其他模型”成为通用的做法多模态模态生成&#xff1a;文字生成图像取得突破&#xff0c;其他领域仍有待提升参考文献与学习路径GPT 系列模型解析前序文章模型进化券商研报陆奇演讲多模态 什么是多模态 多模态生成&#xff0c; …

PAT A1164 Good in C

1164 Good in C 分数 20 作者 陈越 单位 浙江大学 When your interviewer asks you to write "Hello World" using C, can you do as the following figure shows? Input Specification: Each input file contains one test case. For each case, the first pa…

信息论与编码 SCUEC DDDD 期末复习

1.证明熵的可加性 2.假设一帧视频图像可以认为是由3*10的五次方个像素组成&#xff08;每像素均独立变化&#xff09;&#xff0c;如果每个像素可取128个不同的等概率亮度表示。请计算出每帧图像含多少信息量&#xff1f;若有一口述者在约12000个汉字的字汇中选400个字来口述此…

计算机网络|第五章:网络层:控制平面

目录 &#x1f4da;概述 &#x1f4da;路由选择算法⭐️ &#x1f407;链路状态路由选择算法 ⭐️Dijkstra算法 &#x1f407;距离向量路由选择算法 ⭐️DV算法 &#x1f407;LS与DV路由选择算法的比较 &#x1f4da;因特网中自洽系统内部的路由&#xff1a;OSPF &…

chatgpt赋能python:Python取消关机:让你摆脱关机的烦恼

Python取消关机&#xff1a;让你摆脱关机的烦恼 作为一名有10年Python编程经验的工程师&#xff0c;我深知电脑在工作中的重要性和关机时带来的不便。有的时候你可能会忘记保存数据&#xff0c;或是需要长时间运行的程序正在进行&#xff0c;而突然被迫关机是非常让人头疼的。…

chatgpt赋能python:Python是炒股的好工具吗?——一个有10年python编程经验的工程师的分析

Python 是炒股的好工具吗&#xff1f;—— 一个有10年python编程经验的工程师的分析 作为一个有10年python编程经验的工程师&#xff0c;我深深地了解了Python的能力和潜力。 它不仅是一种流行的编程语言&#xff0c;还是一个强大的功能开发平台。它包括很多库&#xff0c;如P…

Maven高级——继承与聚合——继承关系实现

将Maven拆分成多个项目之后又会引发新的问题&#xff0c;继承与聚合就是用来解决这些问题。 这里的继承就像java中类和类之间的继承一样&#xff0c;工程之间也是可以实现继承的。 继承解决的问题 在之前拆分的三个模块中每个都配置了一个lombok的依赖&#xff0c;每一个mav…

【ARMv8 SIMD和浮点指令编程】NEON 减法指令——减法也好几种

向量减法包括常见的普通加指令&#xff0c;还包括长减、宽减、半减、饱和减、按对减、按对加并累加、选择高半部分结果加、全部元素加等。 1 SUB 减法&#xff08;向量&#xff09;&#xff0c;该指令从第一个源 SIMD&FP 寄存器中的相应向量元素中减去第二个源 SIMD&…

旧改快讯--宝安又一项目计划失效:有效期内专规未获批

西井工业区城市更新单元计划&#xff08;失效&#xff09;公告 西井工业区城市更新单元原列入了《2019年深圳市宝安区城市更新单元五批计划》&#xff0c;更新单元计划有效期3年9个月&#xff0c;自2019年8月12日起至2023年5月11日止&#xff1b;该项目在计划有效期内更新单元规…

GAN培训挑战:用于彩色图像的DCGAN

GAN培训挑战&#xff1a;用于彩色图像的DCGAN 1. 效果图2. 原理2.1 用于彩色图像的 DCGAN2.3 准备数据2.4 生成器2.5 鉴别器2.6 DCGAN模型及回调函数2.7 GAN培训挑战2.8 未能聚合&#xff08;Non-convergence&#xff09;2.9 模式崩溃&#xff08;Mode collapse&#xff09;2.1…