• 按键公众号 :
按键精灵电脑版
立即下载

软件版本:2014.06
软件大小:22.9M
更新时间:2021-12-03

按键精灵安卓版
立即下载

软件版本:3.7.2
软件大小:46.2M
更新时间:2023-05-10

按键精灵iOS版
立即下载

软件版本:1.8.0
软件大小:29.2M
更新时间:2023-03-21

按键手机助手
立即下载

软件版本:3.8.0
软件大小:262M
更新时间:2023-05-30

快捷导航

登录 后使用快捷导航
没有帐号? 注册

发新话题 回复该主题

[技术交流] 【院刊】-【201410期】 神奇的Execute语句 [复制链接]

1#

神奇的Execute语句




小编之前考认证的时候遇到这样的一个题目:

a = 1 : execute ("a=2*a"),a的值为?
A:3
B:1
C:2
D:4



>>疑问:

很多同学,同样也遇到了这道题,其中有好多童鞋的第一反应和小编是一样的:execute是什么?
直觉告诉我它一定是一个很牛逼的东西,于是迫不及待的去翻了按键命令库,命令库上说execute是对指定的字符串执行正则表达式搜索。 什么跟什么啊?越看越晕,完全不知道这道题该怎么解答。





>>解惑:
其实呢,题目中的execute并不是命令库中的execute方法,而是vbs里的 execute语句。

Execute语句
功能:执行一个或多个指定的语句。
语法: Execute statements

* 所需要的 statements 参数是一个字符串表达式,其中包含一个或多个要执行的语句。如果要在 statements 参数中包含多条语句,应使用分号或嵌入的分行将其分隔开。

注意: Execute 语句,statements 参数支持部分按键函数,不支持执行按键中的命令库命令、不支持线程BeginThread语句
——Execute 是vbs语句,而命令库里的函数,是使用按键语言编写的,execute语句无法直接执行它。



题目中 execute ("a=2*a")

a = 2*a 可以有两种解释。首先是作为赋值语句,将 2*a 的值赋予 a。其次是作为表达式,测试a 2*a 的值是否相等。如果相等,结果为 True;否则,结果为 False。Execute 语句总是使用第一种解释,而 Eval 方法总是使用第二种。


Execute 语句例子:
  1. a=1
  2. Execute("a =2*a")
  3. TracePrint a
复制代码
输出的结果为:2

Eval 语句例子:
  1. a=1
  2. If Eval("a =2*a") Then
  3. TracePrint "相等"
  4. Else
  5. TracePrint "不相等"
  6. End if
复制代码
输出的结果为:不相等


>>Execute语句的妙用:


在上一期院刊中,讲到了如何将字符串变量中的坐标 ,分割之后实现循环点击坐标点的效果。
第一种方法,采用了分割函数的方法以及二维数组的配合,总共用了20行代码实现。
第二种方法,采用了Execute语句,只用了6行代码便轻松实现了,且理解起来也比第一种方法简单。

上期院刊传送门:【院刊】-【201410期】如何循环点击无规律的坐标呢?


>>知识拓展:

1、 使用execute语句,无法执行带有引号的语句



例子1:
  1. Execute "KeyPress "3", 1"
复制代码
运行之后,提示:语法错误:脚本 我的脚本1 ,第1行,第20个字符:(错误码0)没有找到合法的符号。
怎么办?

解决方法: 使用按键3的按键码来代替
您所在的用户组无法下载或查看附件


代码:
  1. Execute "KeyPress " & "51" &",1"
复制代码

例子2:
  1. Execute "runapp "notepad.exe""
复制代码
运行之后,提示:语法错误:脚本 我的脚本1 ,第4行,第19个字符:(错误码0)没有找到合法的符号。
解决方法: 使用chr(34)来代替"
代码:
  1. Execute "runapp " & chr(34) & "notepad.exe"& chr(34)
复制代码


2、 无法调用按键插件命令



例子:
  1. Execute "Call Plugin.File.DeleteFile("G:\test\字库.txt")" //调用File文件插件的删除文件命令
复制代码
首先,需要将表达式中的”用chr(34)替换掉,如下:
  1. Execute "Call Plugin.File.DeleteFile(" & chr(34) & "G:\test\字库.txt"& chr(34)&") "
复制代码
可是,运行之后还是提示错误:缺少对象: 'Plugin'
为什么会有这样的提示呢? 是这样的,咱们的execute是vbs语句,而在vbs语句中要调用插件,是需要先建立插件对象的

代码如下:
  1. Set x=CreateObject("QMPlugin.File")
  2. Execute "x.DeleteFile(" & chr(34) & "G:\test\字库.txt"& chr(34)&") "
复制代码



如果童鞋们对于本帖里的内容有疑问或者建议,欢迎跟帖讨论~~


您所在的用户组无法下载或查看附件

本文由按键学院提供技术支持
[backcolor=rgb(46, 139, 87)]2个月学会赚大钱的脚本
按键学院10月实战班卷土来袭

    已有1评分我要评分查看所有评分

    本主题由 超级版主 瑞祥幽冥狼 于 2023/4/30 20:58:21 执行 审核帖子 操作
    按键学院免费交流群:376122403

    按键学院招生计划
    按键学院系统教程
    2#

    !!!!!!!!!!!!!!!!!!!!!!!

    3#

    小白怎么办

    4#


    5#

    Set x=CreateObject("QMPlugin.File")
    中的QM是怎么来的?

    庆双蛋打火鸡赢iPhone6s、千元现金红包、红米note3,心动不如行动!快来围观:http://bbs.anjian.com/showtopic-592028-1.aspx
    6#


    7#

    1111111111111111111111111111111111

    承接各类脚本 QQ:155159131
    8#

    23423333333333333333333

    9#

    啊啊啊啊啊啊啊啊

    10#

    :【院刊】-【201410期】 神奇的Execute语句修

    11#

    怎么用

    12#

    完全看不懂

    13#

    会尽快提供一块

    14#

    好东西 学习了

    15#

    ssssssssssssssssssssssssssaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

    16#

    学习。。。。。。。。。

    17#


    18#

    的很多

    19#


    20#

    1231231231

    发新话题 回复该主题