按键精灵X 教学索引 您所在的位置:网站首页 按键精灵脚本改名 按键精灵X 教学索引

按键精灵X 教学索引

2023-10-14 11:20| 来源: 网络整理| 查看: 265

按键精灵X 与 按键精灵2014 版的主要区别:

替换 VBS脚本引擎 为 LUA脚本引擎,整体性能上略有提升,稳定性有较大幅度的提升本次引擎完全重构,一些老旧的模版被去除并不再支持,一些隐藏较深的BUG被修复,但也会带来一些的新的BUG需要解决保持语法上对原有按键尽量兼容的同时,对语法进行了一些实用性扩展配合新手记忆的特点修改了部分函数的命名方式,这个思路也会对未来编辑器自动化更新产生较大好处重新实现的标准库,用于替代VBS标准库,新标准库部分功能做了加强,可以减少实战时的代码量按键精灵2014版操作大漠使用的是VBS内置的COM支持,新的引擎无法移植这部分功能,因此重新实现了COM调用机制,与旧版本有些区别按键精灵X 对多线程的支持更好,新的全局变量让线程间数据传输更方便,且增加了等待、同步机制和线程启动参数按键精灵X 的附件系统非常高效,使脚本调试的速度大幅提升,我们希望开发者可以把更多的时间用在代码编写上,而非无意义的等待按键精灵X 对QUI系统进行了优化,尤其是列表框和组合框(下拉列表框)的易用性优化,对其他控件也增加了一些属性和事件按键精灵X 的一大主题是语言标准化(Q Language),在我的定义中,QL属于BASIC的语言变种,而标准化进程与工业标准化是同一个意思。标准化是目前正在进行的一项工作,已经实现的部分包括:多返回值的支持、全局变量与普通变量使用相同的方式操作、QL标准库和按键扩展库分离、命令设计按照准则进行。当然,也有一些标准化工作需要后面逐渐推动,例如:可选参数、可变参数、表结构支持、对象支持、全局数据交换表等。

从 按键精灵2014 到 按键精灵X 我需要注意什么:

插件调用的区别:

按键精灵2014 使用 Plugin 关键字调用插件:

Plugin.插件名.插件函数 复制代码按键精灵X 需要先使用 Import 语句导入插件到脚本,才能调用插件,但调用插件的写法也更简洁:Impor "插件名.dll" 插件名.插件函数 复制代码Import 语句可以导入多种扩展库,包括:COM插件、LUA插件、按键命令库。

使用COM组件的区别:

像大漠插件这种需要用COM调用的组件,按键精灵X 的使用习惯差别较大。

按键精灵 2014 需要先注册大漠插件到系统,然后使用代码创建大漠插件并调用:

Set dm = CreateObject("dm.dmsoft") msgbox dm.Ver 复制代码按键精灵X 需要先引用大漠插件,然后调用大漠插件的函数:Import "c:\\我的脚本\\dm.dll" msgbox dm.Ver 复制代码如果希望在按键精灵X 的多线程中使用大漠插件,则需要定义变量类型,然后创建对象:Import "c:\\我的脚本\\dm.dll" Dim dmobj as COM("dm.dll") dmobj = CreateObject("dm.dmsoft") msgbox dmobj.Ver 复制代码有时候我们需要将大漠作为参数在多个函数、甚至多个线程之间传递,按键X支持一个对象多个线程访问,但有特殊的写法:在这里,Dim xxx as COM("对象DLL"),是告诉按键 XXX 是一个 大漠COM组件,而 CreateObject 则是创建一个大漠对象并返回。这个对象可以在所有线程之间传递,但传递到新线程里,按键并不知道新的变量名是不是一个大漠对象,所以需要定义一个新的变量(大漠COM组件),并赋值指针。Import "c:\\dm.dll" Dim dmobj as COM("dm.dll") dmobj = CreateObject("dm.dmsoft") ThreadCreate(Thread1, dmobj) Sub Thread1(dmx)     Dim a as COM("dm.dll")     a = dmx     MsgBox a.Ver End Sub 复制代码Import 会自动创建一个全局的对象,对于大漠来说这不是特别友好,因为他会占用 dm 这个标识符,如果不希望他占用标识符,则将大漠插件的dll改个名字,比如 dm3.dl即可如果大漠插件文件改名,那么创建大漠对象时也需要用新的DLL名字了:Import "c:\\dm3.dll" Dim dm as COM("dm3.dll") dm = CreateObject("dm.dmsoft") ThreadCreate(Thread1, dm) Sub Thread1(dmx)     Dim dm as COM("dm3.dll")     dm = dmx     MsgBox dm.Ver End Sub 复制代码还有一种方法可以实现更简单的每个线程一个大漠对象,就是 Import 大漠后,不要在主线程使用大漠对象,这样每个工作线程里的大漠就只和这个线程有关了。简化一下逻辑就是,第一次调用插件命令时,如果对线没创建出来,会先创建对象,如果在线程里,会看主线程有没有对象,主线程有优先用主线程的,否则子线程自己创建销毁。这个逻辑是为了避免每个线程都拥有所有插件的对象副本,降低资源占用而付出的努力。

按键X 字符串支持转义符:

按键精灵2014 字符串写什么就是什么,对于一些特殊字符处理很不方便,例如换行回车,但对于常规字符处理很方便。按键精灵X 字符串支持转义符,可以更方便的在字符串内添加各种特殊字符,但对于字符 \ 需要使用两个 \\ 来代替,这可能导致复制路径时忘记处理\引起BUG。

有关转义符的更多信息,请参考:点我看看支持哪些转义符

数据类型的区别:

按键精灵2014 的 Boolean 类型是使用 Long 代替的,逻辑判断也是使用 Long,转换关系和其他语言类似。按键精灵X 有真实的Boolean类型,转换关系为除了 Null 和 False,其他值都是 True

因此按键精灵X 不能在判断的时候把 0 当作 False,这点需要特别注意。有个简单的解决方案,使用 CBool 命令将数据转换为 Boolean,这个函数会按照其他语言类似的逻辑进行转换。

按键精灵X 标准库对类型的判断和转换,都会根据不同类型选择不同的处理方式,使按键精灵2014转到新版本的用户能更容易的适应新环境。

运算符的区别:

按键精灵2014 的部分运算符(And、Or、Not)为位运算符,并且具备一些额外的运算符(Xor等)按键精灵X 目前仅包含常规运算符,并且 And、Or、Not 为逻辑运算符(返回结果一定是 True 或 False)并且按键精灵X 的 And、Or 运算符带有短路运算符的特征(AndAlso,OrElse),其中一个条件成立时,后面的条件将不再计算。

部分命令命名调整:

涉及比较广泛的命名调整范围:鼠标命令、多线程命令命名调整是为了让成组的功能使用相同的前缀,这样更便于记忆,也更易于设计编辑器的自动提示如果更习惯按键精灵2014的命令命名方式,可以再封装一组兼容函数,这样就可以实现与2014版的兼容了。

标准库的区别:

按键精灵2014 使用的是VBS标准库,VBS标准库功能较多,一些功能带有多个可选的参数,虽然很少用到,但能满足一些小众需求。按键精灵X 的标准库是全新设计的,在多数情况下可以兼容VBS标准库,但部分不是特别必要的功能没有实现(例如AscW、ChrB等)

按键精灵X 的标准库设计并不保守,除了兼容VBS标准库以外,还做了较多的易用性扩展,例如 Iif、Format 等函数。部分同名函数做了较大的易用性加强,例如类型库,每个类型库函数都针对不同的输入数据类型做单独处理,预估用户需要的结果返回。新的时间库采用 Double 数据类型作为时间值,可以直接进行加减运算,输出使用 Format 格式更灵活,更稳定,Double 也更方便存储。

多线程的区别:

按键精灵2014 的多线程实现比较初级,仅仅实现了多条线程同时运行,数据交换、线程同步和等待都没有实现,这导致许多新用户使用多线程门槛过高。按键精灵X 在保证多线程易用的基础上,大幅完善了全局变量的设计,使多线程数据交换更得心应手,同时增加了专业的线程同步函数和等待机制。使用按键精灵X 开发多线程脚本将更加简单。

按键精灵X 的多线程函数现在运行传递参数,并且不限制参数数量和类型。按键精灵X 的线程锁机制,可以让多条线程做争抢资源是自动实现排队处理(例如多线程脚本前台鼠标操作不冲突)按键精灵X 的互斥体函数,可以让任务具有状态,并且能够跨线程获悉这个状态,为线程调度提供便利

语法调整:

按键精灵X 支持多返回值和Return语法,使用Return时,函数将不再继续执行,和传统的BASIC返回方式有所区别:

// 找图函数使用多返回值 Dim idx, x, y idx, x, y = FindPic("c:\\1.bmp") TracePrint "找到第几章图片 :", idx, ",所在位置 :", x, y // 自定义函数使用多返回值 Function foo(a, b, c)     Return c, b, a End Function TracePrint foo(1, 2, 3) 复制代码按键精灵X 不支持(不提倡)While ... Wend、Rem ... Goto 语法,这些语法有更好的方式代替,不提倡的语法会在未来版本删除,因此不建议使用。While ... Wend 可以使用 Do ... Loop 更灵活的代替、Goto语句可以使用循环实现。

按键精灵X 帮助文档 全民编撰计划:

一直以来,按键精灵的帮助文档都由官方整理编辑,每次更新如果对命令或机制产生影响后文档也随之更新。但没影响到的命令,文档也几乎不会再做优化,而往往文档编写时,已经接近版本发布的尾声,时间紧迫,文档也无法做到很细致。你对按键X的帮助文档有哪些期许? 更接近实战风格的范例? 命令的技巧和坑点能够在文档中得以体现?这些都可以实现,但有些工作需要我们亲自动手,让世界变得美好需要每个人身体力行。

按键精灵X 的所有帮助文档,包括帮助文档制作工具全部开源到 OSC@GIT,希望参与文档完善的小伙伴,可以联系06为你开通管理员权限(我的QQ是:2557337092)。或者可以在GIT中发起 Issues,我也会定期根据这里提到的点对文档进行修补和完善,所有文档的修改,都会在下次版本发布时整合到按键的安装包中。

按键精灵X 帮助文档 GIT:http://git.oschina.net/xywhsoft/mqx_help按键精灵X 帮助工具 GIT:http://git.oschina.net/xywhsoft/helpgen_mq



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有