AHK基础入门与程序结构,中循环的中央用法

在我们重复做一些事情的时候,就需要使用循环了。而 AHK
正是能将复杂的手动工作自动化的工具,循环自然必不可少。但 AHK
中的循环也是多种多样的,我们慢慢道来。

[toc]

最简单的情况,我们知道要循环多少次,比如想连续按下 10 次回车键:

程序结构一般指结构化程序设计,也就是说我们把程序结构化,进行以模块功能和处理过程设计为主的详细设计的基本原则。详细请点
[结构化程序设计的百度百科]。

Loop, 10{ Send, {Enter}}

其概念最早由
E.W.Dijikstra在1965年提出的,是软件发展的一个重要的里程碑。它的主要观点是采用自顶向下、逐步求精及模块化的程序设计方法;使用三种基本控制结构构造程序,任何程序都可由顺序、选择、循环三种基本控制结构构造。

这样就可以了。在 Loop
后加上要循环的次数,然后大括号里边就是要循环执行的语句。当然我们可以先把循环的次数放进一个变量,这样更灵活些:

所以我们今天就来讲一讲顺序、选择、循环三种基本控制结构构造。

count := 10Loop, %count%{ Send, {Enter}}

结构流程图

可以在循环体中使用 A_Index 来获取当前循环的次数。

内容:
按照解决问题的顺序写出相应的语句就行,它的执行顺序是自上而下,依次执行。表示方式:——›——›比如:

或者有可能我们想一直循环执行:

msgbox,你好msgbox,你真好msgbox,你太好了run Notepad ;激活运行记事本这个动作send 你烦不烦?{enter} ;{enter}代表回车return
Loop{ Send, {Enter} Sleep, 1000}

运行试一下,你会发现它是从上而下依次运行语句。

这个就是死循环了,如果脚本不退出就会一直执行,某些情况我们确实需要这样。但更多情况,我们需要在满足某个条件时结束循环:

内容:选择结构用于判断给定的条件,根据判断的结果判断某些条件,根据判断的结果来控制程序的流程。表示方式:,如果满足,则运行,如果满足,则运行。比如:

; 这个 stop 变量会在代码的其他地方修改,比如在某个定时器里stop := falseLoop{ Send, {Enter} Sleep, 1000 if  { break }}
a=1b=2if a>b{msgbox,a大于b}else{msgbox,a小于b}return

break 是用来退出循环的,continue
是用来结束当前循环,进入下一次循环的。这和其他语言都一致。

由此可见,选择结构大都依赖与if…else这个命令。AHK中还有一种看起来很复杂的选择结构。

上边的最后一种用法,即满足某个条件时结束循环,也可以用 Until 来实现:

首先先依次解析下命令

stop := falseLoop{ Send, {Enter} Sleep, 1000}Until stop
+ InputBox: 显示输入框让用户输入字符串,也就是说这条命令会获取用户的输入。类似于C语言中的scanf。表示方法:InputBox, OutputVar [, Title, Prompt, HIDE, Width, Height, X, Y, Font, Timeout, Default] ;后悔写这个了,因为要解释的东西好多啊。+ OutputVar:用来保存用户输入文本的变量名.比如:> + inputbox, name ;变量名 即 OutputVar 为 name //运行后弹出一个以脚本名为标题的输入框,输入数据保存在变量name中。 + ErrorLevel:当用户按下取消按钮时 ErrorLevel 值被设置为 1,按下确定时值为 0;

发表评论

电子邮件地址不会被公开。 必填项已用*标注