VBSBegin…VBSEnd(VBS块)
格式:
VBSBegin
...
VBSEnd
用途:可以在VBS块的区域内随意的书写VBS语法指令。

更多说明:
由于彻底的转向VBS语言,会导致goto语句不能被兼容。很多的脚本也就无法自动转换。而其他脚本引擎也有各种各样的问题。综合考虑各种情况,我们决定重新回归到VBSBegin…VBSEnd的语法。
为了简单起见,我们把语法分为两种,在VBSBegin…VBSEnd块内的,以及在VBSBegin…VBSEnd块外的。目前的所有语句都可以看作是VBSBegin…VBSEnd块外的。VBSBegin和VBSEnd必须一一对应,它们所形成的区域不允许嵌套,也不允许有交叉。也就是说,下面的形式是不允许的:
VBSBegin
              VBSBegin
                     XXXXX
                   
 XXXXX
          
   VBSEnd
VBSEnd
允许一个跨多行的VBS语句,如If…Then…End
If出现在一个VBSBegin…VBSEnd块中,但是不允许一个跨多行的VBS语句出现在多个VBSBegin…VBSEnd块中。也就是说,下面的形式是不允许的:
VBSBegin
       If …
Then
XXXX
VBSEnd
XXXX
VBSBegin
       End
If
VBSEnd
这就保证了VBS语言的定义是简单清晰的。

VBSBegin…VBSEnd块外的语法除了沿用目前的所有语法之外,有如下的改动:

以下的语句:MessageBox、SayString、PutAttachment后面的参数为固定的字符串时,应增加引号。如果没有引号,按键精灵将首先试图把参数当作一个表达式(包括变量)去解析,只有解析不成功的时候,才会把参数当成固定的字符串。
就是说,如果写MessageBox  abc
当有一个变量叫abc的时候,弹出对话框的内容将显示abc的值
否则,将显示字符串abc。
而如果写成MessageBox  “abc”
那么无论abc是不是变量名,弹出的对话框将总是显示字符串abc
以下的两种语句合并
SayString和SayExpression
合并成为
SayString
也就是说,以后写SayExpression将会等价于SayString
所有包含不止一个参数的语句,以前的参数分隔符是空格(这是按键1.0带来的设计,现在颇感后悔),现在觉得用逗号做分隔符是大势所趋。所以,改为以下的设计:
目前在VBSBegin…VBSEnd块外,既可以使用空格作分隔,也可以使用逗号作分隔,但是推荐后者。保留了使用空格做分隔的功能,保证了旧脚本的兼容性。在VBSBegin…VBSEnd块内,则一律使用逗号作分隔。

VBSBegin…VBSEnd块内的语法和现有的VBS语法完全相同
而且以下的按键精灵语句,也可以在VBSBegin…VBSEnd块内直接使用,使用方法和块外基本相同:
KeyPress、KeyDown、KeyUp、KeyPressH、KeyDownH、KeyUpH、

LeftClick、RightClick、MiddleClick、LeftDoubleClick、LeftDown、LeftUp、RightDown、RightUp、LeftClickH、RightClickH、MiddleClickH、LeftDoubleClickH、LeftDownH、LeftUpH、RightDownH、RightUpH、

MoveTo、MoveR、MoveRH、

SaveMousePos、RestoreMousePos、

LockMouse、UnlockMouse、

WaitKey、GetLastKey、WaitClick、GetLastClick、

Delay、

MessageBox、SayString、SayExpression、Beep、

EndScript、

PutAttachment

当然,有个别细节上还是有所区别:
1.                  包含多个参数的语句,在VBSBegin…VBSEnd块外推荐使用逗号作为参数分隔符,而块内则必须使用逗号。
2.                
 MessageBox、SayString、PutAttachment后面的参数为固定的字符串时,块外推荐使用引号把字符串内容括起来。而块内必须使用引号括起来。
3.                
 WaitKey、GetLastKey、WaitClick、GetLastClick四个语句都各包含一个参数。在块外可以省略这个参数,而在块内不能省略这个参数。
我相信这些细节用户应该很快可以习惯。

以下的按键精灵语句可以在在VBSBegin…VBSEnd块内使用,使用方法有所变化。如下表所示:

IfColor

IfColor x y 颜色比较方式

If CompColor (x,y,颜色,比较方式) Then

进制

如 IfColor 0 0 ffffff 0

变成

If CompColor(0,0,&Hffffff,0)
Then

相当用VBS原有的If语句,加一个函数搞定

VBSCall

VBSCall [call][x=]函数名(参数列表)[@<vbs文件>]

Import “vbs文件”

[x=]函数名(参数列表)

支持了Import多个vbs文件进来,形成模块化程序

Plugin

Plugin [x=]插件名.函数名(参数列表)

Import “dll 文件”

[x=]插件名.函数名(参数列表)

语法和VBSCall保持了最大程度的一致性

这里有一个小问题:为了让VBSBegin…VBSEnd块内方便的使用插件,目前的插件设计必须进行一些修改。目前,一个插件命令包含的信息是插件命令的名称,解释和实际调用地址。我们需要增加一个新的信息,就是这个插件命令包含的参数个数。但是这样一来,新的插件和旧的插件将会在二进制代码上不能兼容。为此,我决定增加一个“插件版本”的信息。以前的插件版本定为1.0。以后的插件版本定为2.0。按键6.1以后只支持版本2.0的插件。因为现在用户自编的插件还不多,我们只需要把官方插件升级到2.0版本(这个工作目前已经完成),再相应的修改插件模版源码、插件教程就可以了。

按键精灵对VBS的支持的更多相关文章

  1. GitHub Java项目推荐|不需要 ROOT权限的类似按键精灵的自动操作

    不需要 ROOT 权限的类似按键精灵的自动操作软件,可以实现自动点击.滑动.输入文字.打开应用等.Auto.js 的大部分用户用它来点赞.签到.刷游戏 项目分析 仓库名称:Auto.js 标星(sta ...

  2. 转:Android随笔之——使用Root权限实现后台模拟全局按键、触屏事件方法(类似按键精灵)

    本文转载自CSDN的jzj1993,原文连接:http://blog.csdn.net/jzj1993/article/details/39158865 有时我们需要使用安卓实现在后台模拟系统按键,比 ...

  3. [教程] 以本论坛为例,手把手教你使用按键精灵POST登陆网页

    本帖最后由 isaacc 于 2012-2-26 11:08 编辑 整个操作,很无脑.只要你够勤快,你学不会,你来咬我.懒人和伸手党就直接复制代码去玩吧,但我不是叫你拿去干坏事. 准备工具:WPE和I ...

  4. 按键精灵 句柄 获得句柄 控制windows窗口 后台

    新建一个文本文档,打开,Windows就会给这个文本文档的窗口临时分配唯一的一串数字来标识这个窗体,以区别于其他窗口,这串数字就叫句柄.   因为句柄是临时随机分配的,所以每次虽然是打开同一个文件,但 ...

  5. 【笨嘴拙舌WINDOWS】实践检验之按键精灵【Delphi】

    通过记录键盘和鼠标位置和输入信息,然后模拟发送,就能够创建一个按键精灵! 主要代码如下: library KeyBoardHook; { Important note about DLL memory ...

  6. 按键精灵*ff

    Function gethttp(URL) Set objXML=CreateObject("Microsoft.XMLHTTP") objXML.Open "Get&q ...

  7. 按键精灵对APP自动化测试(下)

    上一篇介绍了安卓app上使用按键精灵的实践,这里再来说说苹果上的app. 由于iOS相关工具对操作系统的限制,目前在iOS10.0.2系统上应用成功. 二.       苹果手机按键精灵APP录制 适 ...

  8. 按键精灵对APP自动化测试(上)

    简单介绍下应用背景:测试安卓app时发现重复点击某一按钮的时候会出现报错,开发修复后提交测试.如果采用手动点击按钮,效率不高,在领导提示下使用按键精灵实现自动操作. 一.       安卓手机按键精灵 ...

  9. 按键精灵与逍遥安卓ADB连接重键方法

    1.按键精灵与逍遥安卓ADB连接安装按键精灵与逍遥安卓这两个软件我不用多说了.安装好后把逍遥安卓安装目录下的三个文件adb.exe,AdbWinApi.dll,AdbWinUsbApi.dll 全部复 ...

随机推荐

  1. Oracle 9i & 10g编程艺术-深入数据库体系结构-学习笔记(持续更新中)

    --20170322 --1.0 --更新表的统计信息begin dbms_stats.set_table_stats(user,'EMP',numrows => 10000);end; beg ...

  2. LINUX QQ

    查询龙井QQ http://www.longene.org/forum/viewtopic.php?f=6&t=4700

  3. 最短路之SPFA算法

    部分来自:http://blog.csdn.net/juststeps/article/details/8772755 求最短路径的算法有许多种,除了排序外,恐怕是OI界中解决同一类问题算法最多的了. ...

  4. New Concept English Two 6 13

    $课文11 礼尚往来 105. I was having dinner at a restaurant when Tony Steele came in. 我正在一家饭馆吃饭,托尼.斯蒂尔走了进来. ...

  5. 【python】利用scipy进行层次聚类

    参考博客: https://joernhees.de/blog/2015/08/26/scipy-hierarchical-clustering-and-dendrogram-tutorial/ 层次 ...

  6. vim自动缩进

    最近写完程序,在进行调试时发现特别困难,代码乱的一塌糊涂,特别是代码量很多时,调试起来特别囧,逻辑很难理清. 这让我想起了缩进功能,可以让代码自动对齐. gedit编辑器在菜单栏里的编辑->首选 ...

  7. HDU4261 Estimation

    题意 Estimation Time Limit: 40000/15000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others ...

  8. 随笔——python截取http请求报文响应头

    随笔——python截取http请求报文响应头 标签: pythonhttp响应头 2014-05-29 09:32 2114人阅读 评论(0) 收藏 举报  分类: 随笔(7)  版权声明:本文为博 ...

  9. 关于Eclipse

    Navigator窗口 之前看到同事使用Eclipse的Navigator窗口,十分不解这个窗口有啥用:今天通过了解才知道Package Explorer是从工程的角度来显示文件,比如settings ...

  10. python 书籍推荐 一

    最近"瑞丽模特学Python"的热点牵动了大江南北程序员的心,有人说这是炒作,也有人说这是推广Python的爆点...我嘿嘿一笑,美女就是美女,眼光那是杠杠的,不仅人美,学的语言也 ...