【AHK】打造炒股利器系列——用数组和循环来简化语音报时器

上一篇文章,【AHK】打造炒股利器系列——语音报时器 作为AHK入门,讲解了 注释、赋值、if语句、逻辑运算符、定时器等基本知识。本篇将引入ArrayLoop语句来简化化这个语音报时器,让代码更优雅,代码越简单越不容易出错误,老话说秃头上的虱子明摆着嘛。

先放上简化后的代码,然后再针对初级AHK使用者展开讲解Array、Loop、MsgBox等指令。

#Persistent
#SingleInstance force
/** 
*【AHK】打造炒股利器系列——用数组和循环来简化语音报时器
* 作者:liuyukuan
* 版权声明:未经授权,不得转载 
* 最新版发布在:https://blog.csdn.net/liuyukuan/
*/
; 定义两个数组: 一个是存放时间的数组times;另一个是存放对应消息的数组messages。
times := ["09:00:00", "09:15:00", "09:25:00", "09:30:00", "11:30:00", "13:00:00", "14:45:00", "15:00:00"]
messages := ["早盘下载数据", "开始集合竞价", "距开盘还有五分钟", "上午开盘", "中午收盘", "下午开盘", "距收盘还有十五分钟", "全天收盘"]; 创建 一个 字转语音(TTS )COM 对象
Aladdin := ComObjCreate("sapi.spvoice"); 设定定时器 每 0.5秒 运行一次
SetTimer, 定时器, 500
return定时器:FormatTime, 当前时间,, HH:mm:ss; 用Loop循环来遍历 times 数组Loop, % times.Length(){if (当前时间 = times[A_Index]){Aladdin.Speak(messages[A_Index])break}}
return

简单数组 Array的基本用法

创建数组

有两种方法可以用:

数组:= ["one", "two", "three"]
数组:= Array(Item1, Item2, ..., ItemN)

读取数组

想取出数组arr的第i项元素,直接把序号i放到数组名称后面的方括号里即可。

数组arr的第3项的值 := arr[3]
循环遍历数组

可以通过LoopFor 循环实现. 例如:

array := ["one", "two", "three"]; Length返回数组项目的数量:
Loop % array.Length()MsgBox % array[A_Index]; 枚举数组内容:
For index, value in arrayMsgBox % "Item " index " is '" value "'"

普通循环Loop的基本用法

重复执行一系列命令: 可以指定表示重复次数的数字或直到遇到 break.

Loop [, Count]

参数

Count
执行循环体(重复) 的次数. 如果省略, Loop 会无期限继续, 直到遇到 break 或 return.

如果 Count 是一个变量引用例如 %ItemCount%, 每当此变量为空或包含小于 1 的数字时, 循环会被完全跳过.

备注

内置变量 A_Index 包含当前循环重复的次数. 首次执行循环体时其值为 1. 第二次时其值为 2; 依此类推. 如果一个内层循环包含在一个外层循环中, 那么内层循环具有优先权. A_Index 在所有类型的循环中都有效, 包括文件循环和注册表循环; 但是在循环外部时 A_Index 值为 0.

示例1: 创建一个有 3 次迭代的循环.

;循环3次,内置变量A_Index 将依次为 1, 2, 接着 3
Loop, 3
{MsgBox, 迭代次数是 %A_Index%.  Sleep, 100
}

小扩展:MsgBox

MsgBox语句可以创建一个小对话框窗口,用于输出提示信息,方便用户与程序交互。小窗口中可以含有一个或多个按钮(例如 “是” 和 “否”) 。
消息框通常看起来像这样:
在这里插入图片描述

创建消息框的语法是:

MsgBox, Text
或者
MsgBox [, Options, Title, Text, Timeout]

参数说明

Text(文本)

如果省略所有的参数, 消息框会显示 “Press OK to continue.” 文本. 否则, 此参数表示消息框中显示的文本, 用来引导用户如何操作或提示信息.

可以使用转义序列来显示特殊字符. 例如, `n 表示换行符, 它结束当前行并开始一个新行. 因此使用 text1`n`ntext2 会在 text1 和 text2 之间添加一个空行.

如果 Text 较长, 可以通过延续片段的方法将其分解成较短的几行, 这样可以增加可读性和可维护性.

Options(选项)

表示消息框的类型和可能的按钮组合. 如果为空或省略, 则默认为 0. 注意哈:可以累加的,比如:两个按钮为0x1,感叹号图标0x30,置顶模式0x1000,那么只需设置0x1031.

MsgBox 0x1031,提示,Hello World!

在这里插入图片描述

若要指定在消息框中显示的按钮, 请添加以下值 之一:

功能十进制值十六进制值
确定(即仅显示一个 “确定” 按钮)00x0
确定/取消10x1
终止/重试/忽略20x2
是/否/取消30x3
是/否40x4
重试/取消50x5
取消/重试/继续60x6

除了按钮外,还可以设置图标的
要在消息框中显示一个图标, 请添加以下值 之一:

功能十进制值十六进制值
错误图标(停止/错误)160x10
问号图标320x20
惊叹号图标480x30
星号图标(信息)640x40

如需要对话框置顶,不被其他窗口遮挡,须指定对话框的模式 0x1000 :

功能十进制值十六进制值
系统模式(总是在顶部)40960x1000
任务模式81920x2000
置顶(WS_EX_TOPMOST 样式) (和系统模式类似, 但省略了标题栏图标)2621440x40000
Title(标题)

消息框窗口的标题. 如果省略或为空, 那么它默认为脚本的名称(不含路径).

Timeout(超时)

(可选) 以秒为单位的超时时间

总结

本文以简化上一篇【AHK】打造炒股利器系列——语音报时器](https://blog.csdn.net/liuyukuan/article/details/142388396)中的代码为例,讲解了Array、 Loop 、MsgBox等AHK指令。

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

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

相关文章

07-阿里云镜像仓库

07-阿里云镜像仓库 注册阿里云 先注册一个阿里云账号:https://www.aliyun.com/ 进入容器镜像服务控制台 工作台》容器》容器服务》容器镜像服务 实例列表》个人实例 仓库管理》镜像仓库》命名空间》创建命名空间 仓库管理》镜像仓库》镜像仓库》创建镜像仓库 使…

Spring Boot技术栈:打造高效在线商城

2 相关技术 2.1 Springboot框架介绍 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring…

异步框架 fastapi -- 简单介绍

文章目录 fastapi 介绍restful接口设计简单应用Swagger风格的接口文档 fastapi 介绍 fastapi官方文档 fastapi 是现代化、高性能、基于python标准类型注释的异步web框架;基于python构建web APIs,性能可比go语言;高效编码,更少的…

Word导出样式模板,应用到其他所有word

一,打开自己定义好的模板word文件,要用docx格式 打开自己自定义好各种样式的模板的docx文件。 二, 另存为 -》 选一个位置 三,保存为dotm格式 名字要改为Normal 保存类型要用dotm格式。 四,去找word默认加载的…

OpenAI o1与GPT-4o究竟强在哪里

OpenAI 的 O1 模型与 GPT-4o 相比,具有显著的技术进步和性能提升。以下是两者的主要区别和 O1 的进步之处: 推理能力:O1 模型在处理复杂问题(如编程和数学)方面表现出更强的推理能力。例如,在国际数学奥林匹…

大模型微调方法(非常详细),收藏这一篇就够了!

引言 众所周知,大语言模型(LLM)正在飞速发展,各行业都有了自己的大模型。其中,大模型微调技术在此过程中起到了非常关键的作用,它提升了模型的生成效率和适应性,使其能够在多样化的应用场景中发挥更大的价值。 那么&…

如果只能保留一个复制粘贴软件,那一定是它pastemate

下载地址:Pastemate 在日常的工作和生活中,使用电脑必离不开的功能中,一定有复制粘贴。传统的复制粘贴方式效率不那么高,Windows内置的剪切板功能感觉又差那么些意思。 🧐对于功能和颜值都有要求的你,一定…

大模型推理任务Nvidia GPU选型指南

大型语言模型 (LLM)(如 GPT-4、BERT 和其他基于 Transformer 的模型)彻底改变了 AI 格局。这些模型需要大量计算资源来进行训练和推理。选择合适的 GPU 进行 LLM 推理可以极大地影响性能、成本效益和可扩展性。 在本文中,我们将探索最适合 L…

你们猜!吊打Oracle的国产数据库有哪几家?

今天闲暇之余看到某vx群聊得很火热,这个群聚集了国内不少数据库大咖,其中大家聊到国产数据库遥遥领先了。 最开始主要是一个朋友提到目前很多企业拍板的人并不懂数据库,甚至很多知名数据库都没听过。 然后大家就开始聊到国产数据库了&#xf…

LeetCode[中等] 17. 电话号码的字母组合

给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 思路 回溯法 log:当前结果数组;level&#xff1a…

书生·浦语大模型全链路开源开放体系-笔记

推理能力领先 与社区开源模型相比,InternLM2的性能提升了20%,这表明模型在处理复杂推理任务时更加高效和准确。 支持100万字上下文 该模型能够理解和精确处理长达100万字的文本,这在开源模型中处于领先地位。这种能力对于处理长篇文章、学…

html+css+js实现Pagination 分页

效果图 HTML部分 <body><div class"pagination"><button class"prev"><</button><ul><li class"active">1</li><li>2</li><li>3</li><li>4</li><li>5…

解压视频素材下载网站推荐

在制作抖音小说推文或其他短视频时&#xff0c;找到合适的解压视频素材非常重要。以下是几个推荐的网站&#xff0c;可以帮助你轻松下载高质量的解压视频素材&#xff1a; 蛙学网 蛙学网是国内顶尖的短视频素材网站&#xff0c;提供大量4K高清无水印的解压视频素材&#xff0c;…

Midjourney中文版:解锁AI艺术创作的无限潜能

在数字化时代&#xff0c;艺术创作与科技的融合正以前所未有的速度推进&#xff0c;而Midjourney中文版正是这一趋势下的璀璨明星。作为一款专为中文用户设计的AI绘图工具&#xff0c;它不仅集成了最先进的深度学习技术&#xff0c;还通过本地化优化&#xff0c;为国内设计师和…

心理咨询展示网站建设渠道拓展

心理问题长期以来都受到关注&#xff0c;每个城市里也都有相关服务商家&#xff0c;除了进店外&#xff0c;线上也可以开展咨询服务&#xff0c;对需求者来说需要找到靠谱的品牌&#xff0c;而商家也需要触达到更多客户获取转化。 网站是品牌线上工具&#xff0c;利于商家通过…

昇思MindSpore进阶教程-优化器

大家好&#xff0c;我是刘明&#xff0c;明志科技创始人&#xff0c;华为昇思MindSpore布道师。 技术上主攻前端开发、鸿蒙开发和AI算法研究。 努力为大家带来持续的技术分享&#xff0c;如果你也喜欢我的文章&#xff0c;就点个关注吧 模型训练过程中&#xff0c;使用优化器更…

什么是期望最大化算法?

一、期望最大化算法 期望最大化&#xff08;EM&#xff09;算法是一种在统计学和机器学习中广泛使用的迭代方法&#xff0c;它特别适用于含有隐变量的概率模型参数估计问题。在统计学和机器学习中&#xff0c;有很多不同的模型&#xff0c;例如高斯混合模型&#xff08;GMM&…

LeetCode讲解篇之3. 无重复字符的最长子串

文章目录 题目描述题解思路代码实现 题目描述 题解思路 因为我们需要求无重复字符的最长子串&#xff0c;这个我们首先需要想到使用滑动窗口&#xff0c;窗口内记录无重复的子串的所有字符&#xff0c;移动窗口的右边界时&#xff0c;发现当前字符在窗口内已经出现&#xff0c…

unreal engine5制作动作类游戏时,我们使用刀剑等武器攻击怪物或敌方单位时,发现攻击特效、伤害等没有触发

UE5系列文章目录 文章目录 UE5系列文章目录前言一、问题分析二、使用步骤2.玩家角色碰撞设置3.怪物角色碰撞预设 最终效果 前言 在使用unreal engine5制作动作类游戏时&#xff0c;我们使用刀剑等武器攻击怪物或敌方单位时&#xff0c;发现攻击特效、伤害等没有触发。检查动画…

二叉树进阶oj题【二叉树相关10道oj题的解析和c++代码实现】

目录 二叉树进阶oj题1.根据二叉树创建字符串2.二叉树的层序遍历3.二叉树的层序遍历 II4.二叉树的最近公共祖先5.二叉搜索树和双向链表6.从前序与中序遍历序列构造二叉树7.从中序和后序遍历序列来构造二叉树8.二叉树的前序遍历&#xff0c;非递归迭代实现9.二叉树中序遍历 &…