关于变量的一些基本概念及用法

此教程适用产品: 自动操作魔法师和全能鼠标键盘器

此教程适用版本: 3.0以上版本

关键字:魔法 制作 变量 数据

简述

本文属于基础入门指南,主要针对初次使用自动操作魔法师的用户。通过此文用户可以掌握什么是变量,做什么用,如何用等基本概念。

变量是什么,做什么用的?

变量是用来临时保存数据的。和文件类似,文件有文件名,变量也需要有名称,叫变量名。但和文件不同,变量只是临时保存数据,超过生存期(魔法脚本播放完成或是函数执行完成后)数据就消失了,硬盘上的文件保存数据是持久的,即使机器重新启动或是关机,这些数据都在。

在魔法脚本中,变量主要的作用是在命令间传递数据,也就是前面步骤的命令执行完后得到一些数据,放变量中临时保存起来,然后后面的步骤使用变量中的数据做为输入进行处理。

我们看下面的一个实际的应用例子:

任务简述:有一个数据转换的任务,需要把一个EXCEL文件中的数据提交到一个网站上去,这个任务的操作步骤是这样的,从EXCEL表格取一行数据,顺序填到网页上,然后点网页上的提交按钮提交数据,然后再取EXCEL表格中的下一行数据,再提交,一直到提交完成。

任务分析:操作步骤都一样,但需要提交的数据来自于EXCEL表格,每次填写网页的动作一样,但数据不同(逐行数据提交)。

任务制作:这个任务必须用变量才能完成,首先定义(增加)变量,使用读EXCEL单元格命令,这个命令需要指定变量用于接收数据,这条命令执行完后,读出的数据将保存在指定的变量中。然后就是网页填写的步骤,这时就不能直接填固定的内容了,需要用变量名称来代替实际要填的数据,就是前一步读EXCEL命令中指定的变量。在魔法脚本实际被播放时,填写命令会把变量内的数据写上去。由于每次读到变量内的数据都是不同的,即使填写命令是一样,但最终填写到网页上的数据,每次都会不同。

再举一个例子:

任务简述:点击屏幕上的一个图片左边100像素的地方,但这个图片位置不固定。

任务分析:由于位置不固定,所以肯定不能直接写固定值来点击,且还要点击图片左边100像素的地方,也就是得到位置还不够,还需要运算,变量是必须用的。

任务制作:使用系统类“屏幕搜图”来查找图片位置,并返回图片的位置到变量,比如: v_x, v_y。然后紧跟一条鼠标点击命令,命令中的X选项,使用表达式 %=v_x-100%,Y选项使用 %v_y%。具体变量的使用方法和规则参见后面的讲述。

变量主要用在哪些地方?

在自动操作魔法师中,变量主要用在以下三个方面:

  1. 接收命令执行后的结果数据

    自动操作魔法师中很多命令执行后的结果数据都是通过变量返回的,比如:得到剪贴板内容,此命令要求指定一个变量,命令执行完成后,剪贴板中的内容会保存到指定的变量中,然后就可以在后续命令中使用它。再比如点击屏幕上的某个图片,需要先用屏幕搜图找这个位置,屏幕搜图也需要指定变量用于接收查找成后得到的坐标位置。

  2. 给命令提供数据

    对于魔法师中的大多数命令,提供的数据都可以是变量,当命令执行时,指定变量中的内容会做为输入数据执行命令。比如:填写网页栏目,可以指定一个变量名做为填写内容,当命令执行时,变量内保存的数据会填写到网页栏目中。循环命令中,也可以使用变量名称代替具体的循环次数,当循环命令执行时,实际的循环次数将由这个变量内保存的数字来决定,如果变量内的数字是100,则会循环100次,如果是1000,哪就会循环1000次。

  3. 做运算使用

    自动操作魔法师支持运算表达式,通过表达式可以做一些简单或复杂的运算,比如点击屏幕上的某个图片左边100像素的位置,需要先用屏幕搜图找出图片的位置,然后需要根据这个位置计算得到最终需要点击的位置,则需要使用表达式结合变量进行计算。

具体如何使用变量?

在自动操作魔法师中,每一个要使用的变量都需要定义,也就是要增加到脚本中。增加变量只能在魔法编辑器中进行,在编辑器中,点击菜单“变量”,再选“增加”,然后输入变量的名称即可,一个脚本中所有的变量都可以在编辑器的右下面板中看见,如下图:

编辑器也有自动增加变量的功能,当你修改一条命令后,编辑器会自动加上没有定义的变量。但这个自动增加仅限于哪些必须设置变量的选项,如果在一个表达式中使用了变量,则编辑器不会自动增加。另外,自动增加的变量不会设初值。

使用变量代替实际的数据时,必须需要使用%百分号把变量括起来,播放器在播放魔法脚本时,如果碰到百分号就知道是一个表达式或是变量了,就会特别处理。有些命令是必须要指定变量的,这种时候就不需要用百分号,比如命令“设置变量值”必须指定要设置内容的变量,这时就不能用百分号,如下图:

使用表达式

变量更多时候还是用于计算,比如计算鼠标点击的坐标位置,提取文本,处理文本等等,这些处理或运算都是通过表达式来完成的。不同的数据运算或处理方式会有所不同,比如数字可以加减乘除,但文本就不能做乘除,为了让播放器在处理时知道是什么数据,必须对数据类型进行分类。自动操作魔法师中支持多种不同类型的数据:文字,数字,日期,逻辑(真或假),二进制数据等等。表达式是用来做运算或是数据转换的强大工具,在一些需要灵活处理的地方有时是必须使用的,否则无法完成需要的功能。比如我们需要点击屏幕上某个图片左边100像素的位置,且这个图片出现的位置不固定。很显然,我们必须首先想办法得到这个图片的位置,然后把对这个位置的X坐标进行运算,减去100才是应该点击的最终位置。查找图片的位置我们可以使用系统类命令“屏幕搜图”,位置找到后,可以在鼠标点击命令中使用表达式 %=v_X - 100%来填写X坐标选项,如下图:

其中 %=表示这是一个表达式开始,最后的%表示结束。表达式中使用变量就不再需要用百分号了,如下例则是错误的用法:

%=%v_坐标X%-100%

一个表达式中允许出现不同类型的数据,比如:%=20+"30"%, 或者 %="30"+20都是正确的表达式。播放器在处理表达式时会自动对数据进行类型转换,它会首先以运算符的要求为准进行转换,然后根据左操作数的类型来转换右操作数,如:

%=20 + v_变量%

这个表达式第一个数据是 20,是一个数字,则在计算表达式时会把 v_变量 自动转换为数字进行计算。再看下面的例子:

%=v_变量 + 20%

这个表达式的最后结果取决于v_变量的数据类型,如果 v_变量中是一个数字,则是数学运算,如果是文字,则是文本相加,会把后面的 20 转成文字,如果v_变量内的数据是日期,则会变成日期的加减。关于表达式的详细用法,请参考“表达式的概念及用法详解

结论

变量在魔法脚本中有极其重要的作用,是制作复杂功能的魔法脚本不可缺少的工具。要熟练地魔法脚本中使用变量,记住下面几条:

  1. 变量主要用于命令(步骤)之间传递数据;
  2. 变量也用于表达式中参与计算和处理;
  3. 要使用变量,必须先定义(增加),增加只能在魔法编辑器进行;
  4. 引用变量需要使用 % 百分号把变量括起来,如: %v_变量%;
  5. 表达式必须使用 %=开始,%结束,表达式中的变量不能再用%号括起来,如:%=v_变量+20%;
  6. 变量内的数据有类型区分,可以是:文字,数字,日期,逻辑(真假),二进制等等;
  7. 表达式是从左到右处理的,最终运算结果的数据类型由第一个数据的类型决定,后面的会自动转换;