按键精灵调试没反应简单的颜色判定的脚本 无法调试 不知道哪出问题了 求指教

|||||按键精灵9 v12 官方正式版
您的位置:& > &按键精灵9 v12 官方正式版
按键精灵9 v12 官方正式版按键精灵
网友评分:
软件大小:49.6MB
软件语言:简体中文
软件类型:国产软件
软件类别:键盘鼠标
更新时间:
软件授权:免费版
官方网站:
运行环境:XP/Win7/Win8/Win10
55.20MB/简体中文/6.5
53.3MB/简体中文/8
53.3MB/简体中文/6
5.75MB/简体中文/6.7
1.5MB/简体中文/8.3
按键精灵9是一款功能强大、专业实用的鼠标键盘操作记录录制器,此款软件能够帮助用户自由录制鼠标键盘操作记录然后通过播放录制记录达到鼠标键盘自动操作。软件方便简单,完全手工录制操作,不会出现异常情况,需要的话可以来下载使用。
一、一键录制鼠标键盘动作
只需要一次操作流程的录制,让按键精灵帮你自动完成枯燥的重复操作。
二、智能图形识别技术
软件代替人眼,根据看到的图形自动做出判断,让你的脚本更听话。
三、与好朋友分享你的脚本
把你制作好的脚本发生分享给你的好友,即便你的好友没有安装按键精灵也可以完美运行。
四、海量应用与扩展
内置上百种命令、支持插件接口。没有你做不到的,只有你想不到的。
现在就下载按键精灵放飞您的双手,点亮您的创意,自己做软件,就是这么简单。
解决 在共享热键模式下WaitKey和GetLastKey命令获取不到小键盘按键码的问题
解决 在调试状态下制作加密脚本会导致脚本无法调试的问题
解决 TracePrint调试输出内容较长时,调试信息栏无法出现横向滚动条的问题
解决 源文件视图下脚本折叠后会出现滚动条无法继续下拉的问题
解决 源文件视图下脚本行出现全中文内容时会造成滚动不到顶行的问题
解决 使用热键启动或中止脚本会失效的问题
解决 进入编辑器后标题内容显示不正确的问题
解决 鼠标点击调试输出的命令库问题,无法打开指定命令库的问题
解决 第一次打开显示的宣传动画窗口位置不正常的问题
优化 脚本执行器在加载脚本时的性能问题
优化 按脚本中止热键后声果异常问题
优化 插件加载机制
解决 组合框和设置透明属性的标签控件偶尔出现不显示的问题
解决 设置浏览框控件图标颜色时会导致路径内容消失的问题
解决 获取不到选项卡控件SelectColor选择颜色属性的问题
解决 浏览器控件使用HtmlCheck方法时偶尔出现崩溃的问题
优化 浏览器控件出现内存泄漏的问题
插件与命令
解决 使用插件命令时会偶尔出现加载失败的问题
解决 信息提示插件Msg中的Tips命令反应慢的问题
解决 办公文档插件Office中的CloseXls命令不能关闭Excel进程的问题
解决 普通试图下插件命令中文翻译丢失的问题
解决 使用信息提示插件Tips气泡命令的脚本加密后托盘上不提示的问题
解决 运行状态时系统托盘图标频繁闪烁的问题.
解决 在断网情况下会出现闪退的问题.
解决 打包多个脚本后,切换标签会造成两个脚本界面重叠的问题.
优化 UserVar.ini文件自动释放到小精灵当前目录下.
其他版本下载
软件无法下载或下载后无法使用,请点击报错,谢谢!
请描述您所遇到的错误,我们将尽快予以修正,谢谢!
*必填项,请输入内容
13.99MB/v3.0.1
按键精灵安卓版下载
软件无法下载或下载后无法使用,请点击报错,谢谢!
请描述您所遇到的错误,我们将尽快予以修正,谢谢!
*必填项,请输入内容
本类下载排行测试100遍了,没找出问题。求指点,多点找色 _ 会员专区 - 按键精灵论坛
腾讯微博:
软件版本:2014.05软件大小:21.6M更新时间:07-04
软件版本:3.2.9软件大小:62.5M更新时间:12-07
软件版本:1.3.1软件大小:29.2M更新时间:09-29
软件版本:1.1.0软件大小:12.3M更新时间:12-29
查看: 1094|回复: 6
以下是我的代码。Function zuoshangzhao(shuzu2)&&&&FindMultiColor shuzu2(0), shuzu2(1), shuzu2(2), shuzu2(3), shuzu2(4),shuzu2(5),0, 0.9, intx, inty&&&& If Intx & -1 And inty & -1 Then &&&& &&&&zuoshangzhao = True&&&& Else &&&& &&&&zuoshangzhao =False &&&& End IfEnd Function&&&&Dim 收兵&&&&收兵=Array(0,0,,&639AAD&,&-20|5||-19|63C6BD,-36|-1||-65|B5B6B5,-1|19|088A08,-1|18|085D08,0|-67|8C8A8C&)
&&&&If zuoshangzhao(收兵) = True Then
TracePrint &开始收兵了&
&&&&&&&&Tap intx, inty
&&&&&&&&Delay 200
&&&&End If
Next——————————————————————————————————————————————以上是我自己写的代码。时好时坏。在手机上,上半部分屏幕的兵能检测到,收掉。下半部分的兵就检测不到。我把兵移动到手机上半部分他就能自动收掉。没有缩放屏幕。只是简单移动一下就能收。求解。。。。。。。。。。。
还有人在吗??????????????能帮帮忙吗????谢谢啦。。
过大年勋章俩小福娃给大家拜年啦!双十一绝版纪念勋章双十一绝版纪念勋章单身汪勋章单身贵族的专属勋章按键精灵开发者6级(新浪V认证)通过新浪微博加V后自动发放,并替换普通的认证6级勋章。 微博达人(90天)完成新浪微博加V的奖励,结合活动不定期开放申请。幸运草勋章(永久)商业小精灵限时活动勋章。官方脚本作者工会官方脚本作者工会专属勋章 鹰眼勋章鹰眼注册用户专属勋章黄瓜勋章(永久)体验商业小精灵活动的奖励按键卫士(90天)参与“打击山寨,维护按键”活动图灵勋章参与按键精灵验证码识别大赛奖励按键图书勋章尊贵的按键图书用户小红帽对论坛提出良好建议(可向管理员申请)学有所成学有所成勋章,新手步入按键学堂的第一枚勋章脚本作者商业小精灵作者绑定账号后自动赠送
您好 这种情况 只能靠你自己 反复调试找问题的别人是帮不上忙的 最大 的 可能
就是 兵在不同位置 颜色是有变化的, 只是 肉眼看不出来当然, 这只是猜测 具体情况 还是得您多加输出 反复调试 分析调试结果的
回复 测试150多次终于解决了。是相似度太高。我取色都是取得角上,相似度又太高。每个图片总会有一两个颜色点不一样。所以我只取模糊的大概框架就解决了。还有个问题就是结束一个子程序同时执行另一个子程序命令怎么写?
按 键 工 程 师·兼 职
按键X开拓者勋章最先体验按键精灵X,且提交有效反馈的奖励勋章过大年勋章俩小福娃给大家拜年啦!双十一绝版纪念勋章双十一绝版纪念勋章抗战胜利70周年勋章抗战胜利70周年活动的专属勋章单身汪勋章单身贵族的专属勋章按键14周年庆纪念勋章按键14周年庆纪念勋章(360天)按键学院按键学院专属勋章,按键学院学员或文章被院刊收入可领取幸运草勋章(永久)商业小精灵限时活动勋章。马年勋章(360天) 马年纪念勋章(360天)鹰眼勋章鹰眼注册用户专属勋章黄瓜勋章(永久)体验商业小精灵活动的奖励天使勋章天使一样的用户按键明星按键明星勋章黄金之翼黄金之翼勋章举报达人长期举报不良帖子活动狂人论坛活动狂人骨灰级按键用户3年以上的按键论坛用户按键精灵开发者6级可通过提升认证等级来升级勋章:rz.anjian.com龙年勋章(360天)龙年纪念勋章(360天)十周年勋章(360天)十周年纪念勋章兔年勋章(360天)兔年纪念勋章(360天)论坛GG按键论坛男性用户勋章发帖高手鼓励积极回复,但注意不要灌水哦爱心大使积极帮助新手(可向管理员进行申请)学有所成学有所成勋章,新手步入按键学堂的第一枚勋章实习版主按键论坛的实习版主专属勋章按键元老资深按键用户的尊贵荣誉勋章管理人员按键论坛的管理团队专属勋章
回复 Dim ID1
ID1=Thread.Start(子程序1)
Delay 3000
Thread.Stop(ID1)'停止子程序1
Thread.Start(子程序2)'启动子程序2
Sub 子程序1()
TracePrint &子程序1运行中&
Delay 1000
Sub 子程序2()
TracePrint &子程序2运行中&&&&&
自命不凡,其实很落魄个人QQ: 个人爱好群:[加群有惊喜]
回复 谢谢大神。还有个问题啊,就是给DO加上时间限制防止死循环,怎么PC的能用,在安卓按键上面就不能用,安卓按键上面没有获得时间差的功能吗?还有你发给我的这个事属于多线程的使用,我暂时还没学会。不过我想问的就是你这是加在Sub外面的,我把停止线程,加上判断条件可以吗,??
按 键 工 程 师·兼 职
按键X开拓者勋章最先体验按键精灵X,且提交有效反馈的奖励勋章过大年勋章俩小福娃给大家拜年啦!双十一绝版纪念勋章双十一绝版纪念勋章抗战胜利70周年勋章抗战胜利70周年活动的专属勋章单身汪勋章单身贵族的专属勋章按键14周年庆纪念勋章按键14周年庆纪念勋章(360天)按键学院按键学院专属勋章,按键学院学员或文章被院刊收入可领取幸运草勋章(永久)商业小精灵限时活动勋章。马年勋章(360天) 马年纪念勋章(360天)鹰眼勋章鹰眼注册用户专属勋章黄瓜勋章(永久)体验商业小精灵活动的奖励天使勋章天使一样的用户按键明星按键明星勋章黄金之翼黄金之翼勋章举报达人长期举报不良帖子活动狂人论坛活动狂人骨灰级按键用户3年以上的按键论坛用户按键精灵开发者6级可通过提升认证等级来升级勋章:rz.anjian.com龙年勋章(360天)龙年纪念勋章(360天)十周年勋章(360天)十周年纪念勋章兔年勋章(360天)兔年纪念勋章(360天)论坛GG按键论坛男性用户勋章发帖高手鼓励积极回复,但注意不要灌水哦爱心大使积极帮助新手(可向管理员进行申请)学有所成学有所成勋章,新手步入按键学堂的第一枚勋章实习版主按键论坛的实习版主专属勋章按键元老资深按键用户的尊贵荣誉勋章管理人员按键论坛的管理团队专属勋章
回复 问题一:Dim 开始时间
开始时间=time()
TracePrint 开始时间
Do Until Time() - 开始时间 & 5
TracePrint &运行中 &
Delay 1000
复制代码问题二:可以
自命不凡,其实很落魄个人QQ: 个人爱好群:[加群有惊喜]1困扰 偏色无处不在 你会怎么处理&&&&&&很多在摄影圈呆过一段时间的朋友都会提出一个问题,那就是如何才能拍出不偏色的照片。虽然笔者常说不一样的系统本身就具备不一样的色彩倾向性,但是很多时候我们还是需要拍摄出尽可能贴近真实的颜色,比如拍摄玉石翡翠、古董字画之类等对色彩还原度要求极高的项目(细微色偏都会对价值有很大影响),不过想要拍出尽可能接近真实的色彩显然很难,今天笔者就来谈谈如何能够拍出准确的色彩。困扰&偏色无处不在&你会怎么处理&&&&&&想要拍出准确的色彩,首先就有一个很重要的前提条件,那就是使用RAW格式,虽然对于很有经验的人来说使用JPEG或者TIFF也可以达到相似的效果,但是如果你不使用RAW,前期的一丁点疏忽都可能导致前功尽弃。RAW能做到尽可能的不偏色也是因为RAW文件保留了尽可能完整的信息,而并不代表RAW文件本身在色彩准确度上拥有什么样子的优势。给校色只是色彩管理的第一步&&&&&&之后的事情就和很多人想象中的一样,需要一份标准色彩作为参照,我们往往会使用折叠式的标准色板,平面色板虽然效果更好,但是由于需要频繁使用,折叠式的产品反而可以比较好的保证色板不会受到过多的损害。然后通过拍摄色板得出的数据进行校准,之后就可以得到正确的色彩。这一切说起来很简单,但是具体的操作还是请大家向下看去,看看有什么和想象中的不一样。&&&&文章:高卓鹏、商皛&测试:高卓鹏、商皛&配图:商皛&样片:高卓鹏、商皛产品:
2校色&需要标准色板&不然哪有基准校色&需要标准色板&不然哪有基准&&&&首先要做的就是拍摄标版,色彩标版的价格在很多人看来是不可理喻的,因为类似的产品3位数都算极便宜的了,稍微上点档次的都是4位数的价格,毕竟色彩标版要考虑到长时间使用不会产生比较明显的衰减,所以往往会采用比较耐用并且昂贵的材料制作。色卡使用了很多比较昂贵但是耐用性很好的材料&&&&标版的拍摄其实并不需要太过苛刻的环境,不过拍摄标版需要一个稳定并且均匀的光源环境,在复杂的光源环境下(比如一个房间同时有两种颜色的灯)是无法实现准确识别色彩的,当然如果你想要试试也是可以的,不过结果很显然并不具备太多的可控性。拍摄色卡不需要非常严肃&随意手持即可&&&&拍摄标版时自然需要尽可能的正对标版,但是由于每个色块的尺寸颇为庞大,所以实际上并没有那么严格的限制,只要我们保证基本平行即可,大小一点都不会成为太大的问题。还是那句话,拍摄标版的环境其实很重要,至于标版本身正不正都不会影响太多的。最后需要注意的是,如果你更换环境,那么一定要重新拍摄一张色板,毕竟一次拍摄只能对应一个环境。产品:
3过程 其实并不复杂 软件两部搞定过程&其实并不复杂&两部搞定&&&&好了,校色过程的剩下环节我们需要在之后的计算机上完成,在你拍摄完色板之后就可以拍摄你需要的东西了,但是事情和我们当初说的一样,只要你更换了拍摄环境,就需要重新拍摄色板重新校对颜色。对于在影棚拍摄的朋友来说就简单了,在不调整灯光的情况下调整一次就可以用很久,对于普通人来说可就辛苦多了。拍摄色卡绝对不是一劳永逸的事情&需要不断反复进行&&&&拍摄色卡的曝光最好使用专业的灰卡进行测光,我们今天的这个套装里边附带有灰卡,之后我们需要把色板的照片读入到对应的软件当中,我们这一次使用的是来自Datacolor&Spyder&CHECKR,这个软件支持的2大—的以及以及哈苏的小众软件Phocus。&&&&由于前两者采用了一样的RAW解码内核,所以这一次笔者只以Lightroom作为演示,Photoshop只是部分操作有所不同,最终成像效果完全一样。至于Phocus,因为其用户群十分稀少,这里不做详细讲述。&&&&具体的实际操作步骤笔者录制了一段视频供大家观看,步骤简单来说就是选择白点(调整白平衡到准确值),调整曝光(控制亮点亮度至90,90,90),调整黑色色阶(控制暗点亮度至4,4,4),将调整后的色板照片导入Spyder&CHECKR软件,然后计算出偏色情况。之后就是把所有的调整和计算步骤保存成为预设,应用在同光源的图片上,就可以实现颜色校正。非常具体的操作步骤就请大家看上方的视频了,相信是很容易理解的。产品:
4实战&主流相机比拼&全画幅小微单实战&主流相机比拼&全画幅小微单&&&&在上一页当中我们讲述了调色的过程,在这一页我们则找来了4台相机进行实战,分别为目前像素数量最高的单次曝光成像相机—飞思IQ180、目前关注度最高的全画幅单反相机—、使用独特三层传感器的小型高画质相机—适马DP2x,小型无反相机的新秀—三星NX300,虽然样本只有4个,但是基本涵盖了4大类用户,那就是商用市场、高端单反用户、普通家庭用户、特殊X3用户。此次我们选择的4台相机以及对应型号&&&&我们使用这4台相机同样的拍摄色板以及被摄物体,在参数和光源完全一致的情况下,可以看到得出的原始白平衡并不一致,这应该是由于不同传感器使用了不同灵敏度的色彩滤镜,比如佳能的传感器对于黄色有更高的灵敏度,适马的X3传感器对于红色的感应能力较差,直接导致了大家在相同的环境,相同的白平衡设置下颜色并不相同。佳能5D&Mark&III前后对比&&&佳能5D&Mark&III是第一台参与对比的相机,由于采用了非常成熟的拜耳阵列排布,佳能的RAW解码支持的也是很好,所以我们可以看到佳能的机器差距可以算是最小的。三星NX300前后对比&&&&三星NX300采用的是三星自家的APS-C传感器,同样采用了传统的拜耳阵列排列,而且三星也是目前主动和合作为数不多的相机厂商之一,所以总的来说除了饱和度偏高,表现还是很好的。产品:
5实战&上挑至8000万&下打X3小神器实战&上挑至8000万&下打X3小神器&&&&然后来说说两台极其各色的相机吧,适马DP2x和飞思IQ180,前者使用了非常特殊的X3传感器,后者则使用了在工艺上更为传统的CCD传感器,相对于目前主流的CMOS工艺拜耳阵列感光元件,他们具备更多的变数,下面就让我们来看看具体表现。适马DP2x前后对比&&&适马DP2x本身就对众多RAW兼容性很差,的这套东西就算在其中算好的,肯定也有着不少的问题,我们可以看到,直接解开的适马X3文件其实效果还是说的过去的,但是经过调整之后,红色带来了一抹奇特的紫色,绿色也增加了一些青,实在难以让人接受。飞思IQ180前后对比&&&飞思IQ180拍出的照片,如果不经过调整,那个颜色只能用诡异来形容,不过经过调整后的IQ180显现出了非常精准的色彩,不过整体曝光方面显现出了一些欠曝风格,笔者猜想可能是IQ180为了控制宽容度所以对高光区域的曲线进行了一些调整,所以才会造成这样的情况。产品:
6实战 最终对比效果 佳能三星胜出实战&最终对比效果&佳能三星胜出&&&&然后我们来看看4个设备的对比图片吧,笔者特别将以上4张图图片剪裁到一起进行对比,尽可能的方便大家来识别色彩。结果如何不是嘴皮子说出来的,就请大家来看看我们的图片为!4台相机红色表现对比&&&&三台相机的红色表现部分,除了DP2x以外都表现的还算相同,DP2x出现了一个非常奇特的紫色,这也许是因为适马X3传感器对于红色表现向来不佳引起的。4台相机绿色表现对比&&&4台相机的绿色表现方面,佳能与三星的产品一致性比较高,适马DP2x则呈现出了比较明显的青色,飞思IQ180的曝光很明显要比其余产品更暗一些,笔者怀疑是采用了某些提高高光宽容度的曲线所致,总之依旧是DP2x比较偏色,其余3个色调基本一致,但是IQ180明显偏暗。校色的范围大小&实际上与相机的颜色准确并无太大的关联&&&&总的来说,经过我们使用调整之后,、IQ180、NX300直观效果相比之前都表现出了更贴近实物,使用校色过的27寸高分辨率显示器(关于显示器校色的内容我们会在后续说明)进行色板的实物对比也显得更加接近,在笔者看来这3台相机校色都是成功的。至于具体的差距笔者也在下边列出了4张表格,仅供大家参考。(以下所有数据均由色板自动读出,只代表此次测试结果,不代表与绝对准确的差异)4台相机的基础设置4台相机的色相调整数值4台相机的饱和度调整数值4台相机的明亮度调整数值&&&&最后一台适马DP2x经过校色之后显现出了一种可以称之为“诡异”的色调,不过对于X3&RAW文件的支持向来不如适马原厂SIGMA&Photo&Pro好,笔者认为更多的责任出在软件身上。不过由于我们今天的设备Spyder&CHECKR并不支持更多软件,所以可以确定他并不适用于适马X3传感器相机。产品:
7结束 其实只是开始 后续仍要调节结束&其实只是开始&后续仍要调节&&&&好了,以上就是关于相机校色的内容了。上边的结果并不能说明一台相机的色彩是否准确,毕竟相机的色彩也有着自己所谓的倾向性,当然这次的测试起码可以证明一个问题,那就是佳能、三星、飞思的多数产品可以适用于我们这次测试的进行一定程度的色彩校正,而适马的X3显然是不行的。适马X3在我们这一次的校色中可以说是完全失败&但是这依旧不能证明什么&&&&实际上保证相机拍摄出接近真实的色彩只是第一步,毕竟摆在我们面前的还有一个莫大的限制,那就是我们观看照片都要使用显示器,虽然设备能够帮助我们计算出什么是准确的颜色,但是我们仍然无法克服眼睛对于显示效果的直观影响。而且在这个世界上还存在着同色异谱色这个问题,也许有些色彩我们就是不可能拍摄的准确,这就是人眼与传感器的差距。显示器校色是色彩管理当中接下来的一步&&&&也就是说,如果你不调整显示器,那么你对于整个照片色彩部分的调整也就到此为止了,在显示器有所偏差的情况下,以人类的视觉效果进行调色,本身就会造成相当的颜色误差。所以说稍后我们也会撰写一篇关于显示器校色的文章,以尽可能多的保证相机校色的效果。校正打印机是最为困难也是最为费劲的最后一步&你需要付出的努力远胜前边的总和&&&&最后的最后,笔者也要给大家简单的来介绍一个概念,那就是色彩管理,其首要目的是让不同的设备能保持相对统一的色彩表现效果,我们今天所讲的相机校色,日后所说的显示器校色,打印机校色都属于色彩管理的一部分,今后我们也会给大家带来更多关于色彩管理的内容,让大家更多更清晰的了解到偏色到底从何而来,我们又能让他走到哪里。
8三星NX300套机(18-55mm III)详细参数
如何拍摄出准确的色彩是很多人头疼的问题,今天笔者就用一个简单的工具与大家一起尝试一下相机拍摄精准色彩到底有多难。
产品类型 传感器尺寸
投诉欺诈商家:
天津重庆哈尔滨沈阳长春石家庄呼和浩特西安太原兰州乌鲁木齐成都昆明贵阳长沙武汉郑州济南青岛烟台合肥南京杭州东莞南宁南昌福州厦门深圳温州佛山宁波泉州惠州银川
本城市下暂无经销商
4¥39995¥89996¥93997¥47998¥65999¥1649910¥3699按键精灵脚本制作_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
按键精灵脚本制作
&&按键精灵脚本制作
阅读已结束,下载本文需要
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,方便使用
还剩4页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢当前位置: >>
按键精灵脚本编写方法
按键精灵学习教程一、 键盘命令(2~5 页) 二、鼠标命令(5~13 页) 三、控制命令(13~22 页) 四、颜色/图像命令(22~28 页) 五、其他命令(28~355 页)五、网游脚本实例(35~最后) 一、 键盘命令命令名称: 命令功能: 命令参数: 返 回 值: 脚本例子: (8.x 语法)G e t L a s t Ke y 检 测 上 次 按 键检测上次按键 参数 1 整数型,可选:变量名 无 复制代码 1. 2. 3. 4. 5. //脚本运行到这一行不会暂停,调用的时候立即返回,得到调用之前最后一次按下的按键码保存在变量 Key 里。 Key=GetLastKey() If Key = 13 Then Msgbox &你上次按下了回车键& End If脚本例子: (7.x 语法)复制代码 1. 2. 3. 4. 5. //脚本运行到这一行不会暂停,调用的时候立即返回,得到调用之前最后一次按下的按键码保存在变量 Key 里。 GetLastKey Key If Key = 13 Msgbox &你上次按下了回车键& EndIf命令名称: 命令功能: 命令参数:K e yD o w n 按 住键盘按住 参数 1 整数型,键盘虚拟码(8.X 支持 按键字符) 参数 2 整数型,次数返 回 值: 脚本例子: (8.x 语法)无 复制代码 1. 2. 3. 4. 5. //KeyDown、KeyDownS、KeyDownH //KeyDownS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和 USB 接口的键盘都 可以使用 //KeyDownH: 硬件模拟方式,仅支持 PS(圆口)的键盘 点击查看使用硬件模拟方式的注意事项 KeyDown 65,1 //65 是 A 键的按键码,上面的语句表示按住 A 键 1 次 6. 7. 8. KeyDown &A&,1 //上面的支持按键字符,语句表示按住 A 键 1 次脚本例子: (7.x 语法)复制代码 1. 2. 3. 4. 5. //KeyDown、KeyDownS、KeyDownH //KeyDownS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和 USB 接口的键盘都 可以使用 //KeyDownH: 硬件模拟方式,仅支持 PS(圆口)的键盘 点击查看使用硬件模拟方式的注意事项 KeyDown 65,1 //65 是 A 键的按键码,上面的语句表示按住 A 键 1 次命令名称: 命令功能: 命令参数:K e yPr e s s 按 键键盘按键 参数 1 整数型,键盘虚拟码(8.X 支持 按键字符) 参数 2 整数型,次数返 回 值: 脚本例子: (8.x 语法)无 复制代码 1. 2. 3. 4. 5. 6. 7. 8. KeyPress &A&,1 //上面的支持按键字符,语句表示按 A 键 1 次 //KeyPress、KeyPressS、KeyPressH //KeyPressS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和 USB 接口的键盘都 可以使用 //KeyPressH: 硬件模拟方式,仅支持 PS(圆口)的键盘 点击查看使用硬件模拟方式的注意事项 KeyPress 65,1 //65 是 A 键的按键码,上面的语句表示按 A 键 1 次脚本例子: (7.x 语法)复制代码 1. 2. 3. 4. 5. //KeyPress、KeyPressS、KeyPressH //KeyPressS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和 USB 接口的键盘都 可以使用 //KeyPressH: 硬件模拟方式,仅支持 PS(圆口)的键盘 点击查看使用硬件模拟方式的注意事项 KeyPress 65,1 //65 是 A 键的按键码,上面的语句表示按 A 键 1 次命令名称: 命令功能:K e yU p 弹 起键盘弹起 命令参数:参数 1 整数型,键盘虚拟码(8.X 支持 按键字符) 参数 2 整数型,次数返 回 值: 脚本例子: (8.x 语法)无 复制代码 1. 2. 3. 4. 5. 6. 7. 8. KeyUp &A&,1 //上面的支持按键字符,语句表示松开 A 键 1 次 //KeyUp、KeyUpS、KeyUpH //KeyUpS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和 USB 接口的键盘都可 以使用 //KeyUpH: 硬件模拟方式,仅支持 PS(圆口)的键盘 点击查看使用硬件模拟方式的注意事项 KeyUp 65,1 //65 是 A 键的按键码,上面的语句表示松开 A 键 1 次脚本例子: (7.x 语法)复制代码 1. 2. 3. 4. 5. //KeyUp、KeyUpS、KeyUpH //KeyUpS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和 USB 接口的键盘都可 以使用 //KeyUpH: 硬件模拟方式,仅支持 PS(圆口)的键盘 点击查看使用硬件模拟方式的注意事项 KeyUp 65,1 //65 是 A 键的按键码,上面的语句表示松开 A 键 1 次命令名称: 命令功能: 命令参数: 返 回 值: 脚本例子: (8.x 语法)WaitKey 等 待 按 任 意 键等待按任意键 参数 1 整数型,可选:变量名 无 复制代码 1. Key=WaitKey() 2. 3. 4. 5. //脚本运行到这一行会暂停,当用户按下键盘后继续执行,并且把用户的按键码保存在变量 Key 里 If Key = 13 Then MessageBox &恭喜你按下了回车键& End If脚本例子: (7.x 语法)复制代码 1. WaitKey Key 2. 3. //脚本运行到这一行会暂停,当用户按下键盘后继续执行,并且把用户的按键码保存在变量 Key 里 If Key = 13 4. 5.Msgbox &恭喜你按下了回车键& EndIf二、鼠标命令命令名称: 命令功能: 命令参数:G e t Cur s o r Po s 得 到 鼠 标 位 置 坐 标得到当前鼠标所在的位置坐标 参数 1 整数型,返回 x 坐标 参数 2 整数型,返回 y 坐标返 回 值: 脚本例子: (8.x 语法)无 复制代码 1. GetCursorPos mx,my 2. //把当前鼠标位置的 x 和 y 坐标放在变量 mx 和 my 中脚本例子: (7.x 语法)复制代码 1. VBSCall GetCursorPos(mx,my) 2. //把当前鼠标位置的 x 和 y 坐标放在变量 mx 和 my 中命令名称: 命令功能: 命令参数: 返 回 值: 脚本例子: (8.x 语法)G e t Cur s o r S ha p e 得 到 鼠 标 形 状得到当前鼠标的形状特征 参数 1 整数型,参数 整数型,鼠标的形状值 复制代码 1. 2. 3. 4. 5. 6. 7. //参数: 0 是 6.83 之前的版本默认的参数 //参数: 1 可用于一些在参数 0 下无法区分鼠标形状代码的情况 //下面是我们普通的 WINDOWS 鼠标形状特征 //不同电脑上鼠标形状特征也许不同,请使用&抓点抓色&功能抓取正确的鼠标形状特征 Shape1 =
//下面是我们访问网页超链接时候的手型鼠标形状 Shape2 =
8. 9. 10. 12. 14.shape=GetCursorShape(0) If shape = shape1 Then MessageBox &当前鼠标形状是普通的 WINDOWS 鼠标& MessageBox &当前鼠标形状是手型鼠标& MessageBox &不认识当前鼠标形状!&11. ElseIf shape = shape2 Then 13. Else 15. End If脚本例子: (7.x 语法)复制代码 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 12. 14. //参数: 0 是 6.83 之前的版本默认的参数 //参数: 1 可用于一些在参数 0 下无法区分鼠标形状代码的情况 //下面是我们普通的 WINDOWS 鼠标形状特征 //不同电脑上鼠标形状特征也许不同,请使用&抓点抓色&功能抓取正确的鼠标形状特征 Shape1 =
//下面是我们访问网页超链接时候的手型鼠标形状 Shape2 =
VBSCall Shape=GetCursorShape(0) If shape = shape1 MessageBox 当前鼠标形状是普通的 WINDOWS 鼠标 MessageBox 当前鼠标形状是手型鼠标 MessageBox 不认识当前鼠标形状!11. ElseIf shape = shape2 13. Else 15. EndIf命令名称: 命令功能: 命令参数: 返 回 值: 脚本例子: (8.x 语法)G e t L a s t Cl i ck 检 测 上 次 按 过 的 鼠 标 键检测上一次按下的鼠标代码 参数 1 整数型,可选:变量名 无 复制代码 1. Mouse=GetLastClick() 2. 3. 4. If Mouse =32770 Or Mouse =32769 Then Msgbox &你按下了鼠标左键& End If脚本例子: (7.x 语法)复制代码 1. GetLastClick Mouse 2. If Mouse =32770 Or Mouse =32769 3. 4.Msgbox &你按下了鼠标左键& EndIf命令名称: 命令功能: 命令参数: 返 回 值: 脚本例子: (8.x 语法)L e f t Cl i ck 左 键 单 击模拟点击鼠标左键 参数 1 整数型,次数 无 复制代码 1. 2. 3. 4. 5. //LeftClick、LeftClickS、LeftClickH //LeftClickS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和 USB 接口的鼠标 都可以使用 //LeftClickH: 硬件模拟方式,仅支持 PS(圆口)的鼠标 点击查看使用硬件模拟方式的注意事项 LeftClick 5 //在当前鼠标的位置单击鼠标左键 5 次脚本例子: (7.x 语法)复制代码 1. 2. 3. 4. 5. //LeftClick、LeftClickS、LeftClickH //LeftClickS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和 USB 接口的鼠标 都可以使用 //LeftClickH: 硬件模拟方式,仅支持 PS(圆口)的鼠标 点击查看使用硬件模拟方式的注意事项 LeftClick 5 //在当前鼠标的位置单击鼠标左键 5 次命令名称: 命令功能: 命令参数: 返 回 值: 脚本例子: (8.x 语法)L e f tD o ub l e Cl i ck 左 键 双 击模拟双击鼠标左键 参数 1 整数型,次数 无 复制代码 1. 2. 3. 4. 5. //LeftDoubleClick、LeftDoubleClickS、LeftDoubleClickH] //LeftDoubleClickS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和 USB 接 口的鼠标都可以使用 //LeftDoubleClickH: 硬件模拟方式,仅支持 PS(圆口)的鼠标 点击查看使用硬件模拟方式的注意事 项 LeftDoubleClick 5 //在当前鼠标的位置双击鼠标左键 5 次 脚本例子: (7.x 语法)复制代码 1. 2. 3. 4. 5. //LeftDoubleClick、LeftDoubleClickS、LeftDoubleClickH] //LeftDoubleClickS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和 USB 接 口的鼠标都可以使用 //LeftDoubleClickH: 硬件模拟方式,仅支持 PS(圆口)的鼠标 点击查看使用硬件模拟方式的注意事 项 LeftDoubleClick 5 //在当前鼠标的位置双击鼠标左键 5 次命令名称: 命令功能: 命令参数: 返 回 值: 脚本例子: (8.x 语法)L o ckM o us e 锁 定 鼠 标 位 置锁定鼠标位置,用户将不能通过移动鼠标而改变鼠标位置,而脚本仍可以改变鼠标位置 无 无 复制代码 1. 2. 3. 4. 5. //在脚本开始的时候使用这个命令,可以有效防止用户误触鼠标引起脚本执行出错 LockMouse Do Delay 1000 Loop脚本例子: (7.x 语法)复制代码 1. 2. 3. 4. 5. //在脚本开始的时候使用这个命令,可以有效防止用户误触鼠标引起脚本执行出错 LockMouse While True Delay 1000 EndWhile命令名称: 命令功能: 命令参数: 返 回 值: 脚本例子: (8.x 语法)M i d d l e Cl i ck 中 键 单 击模拟点击鼠标中键 参数 1 整数型,次数 无 复制代码 1. 2. 3. 4. //MiddleClick、MiddleClickS、MiddleClickH //MiddleClickS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和 USB 接口的鼠 标都可以使用 //MiddleClickH: 硬件模拟方式,仅支持 PS(圆口)的鼠标 点击查看使用硬件模拟方式的注意事项 MiddleClick 5 5.//在当前鼠标的位置单击鼠标中键 5 次脚本例子: (7.x 语法)复制代码 1. 2. 3. 4. 5. //MiddleClick、MiddleClickS、MiddleClickH //MiddleClickS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和 USB 接口的鼠 标都可以使用 //MiddleClickH: 硬件模拟方式,仅支持 PS(圆口)的鼠标 点击查看使用硬件模拟方式的注意事项 MiddleClick 5 //在当前鼠标的位置单击鼠标中键 5 次命令名称: 命令功能: 命令参数: 返 回 值: 脚本例子: (8.x 语法)M o us e Whe e l 鼠 标 滚 轮滚动鼠标滚轮 参数 1 整数型,滚动量 无 复制代码 1. 2. 3. 4. //如果滚动量为正,向上滚动;否则向下滚动. //仅支持 Windows 2000 以上的操作系统. MouseWheel 1 //把鼠标滚轮向上滚动 1 格脚本例子: (7.x 语法)复制代码 1. 2. 3. 4. //如果滚动量为正,向上滚动;否则向下滚动. //仅支持 Windows 2000 以上的操作系统. MouseWheel 1 //把鼠标滚轮向上滚动 1 格命令名称: 命令功能: 命令参数:M o ve R 鼠 标 相 对 移 动鼠标相对移动到 参数 1 整数型,X 距离 参数 2 整数型,Y 距离返 回 值: 脚本例子: (8.x 语法)无 复制代码 1. 2. 3. 4. //MoveR、MoveRS、MoveRH //MoveRS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和 USB 接口的鼠标都可 以使用 //MoveRH: 硬件模拟方式,仅支持 PS(圆口)的鼠标 点击查看使用硬件模拟方式的注意事项 //当前鼠标在(100,100)点,使用下面语句 5. 6. 7.MoveR 200,300 //之后,鼠标就被移到了(100+200,100+300)处,也就是坐标(300,400)处 //提示:使用硬件模拟方式不能碰键盘鼠标,否则会导致出错脚本例子: (7.x 语法)复制代码 1. 2. 3. 4. 5. 6. 7. //MoveR、MoveRS、MoveRH //MoveRS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和 USB 接口的鼠标都可 以使用 //MoveRH: 硬件模拟方式,仅支持 PS(圆口)的鼠标 点击查看使用硬件模拟方式的注意事项 //当前鼠标在(100,100)点,使用下面语句 MoveR 200,300 //之后,鼠标就被移到了(100+200,100+300)处,也就是坐标(300,400)处 //提示:使用硬件模拟方式不能碰键盘鼠标,否则会导致出错命令名称: 命令功能: 命令参数:M o ve To 鼠 标 移 动移动鼠标到 参数 1 整数型,X 坐标 参数 2 整数型,Y 坐标返 回 值: 脚本例子: (8.x 语法)无 复制代码 1. 2. 3. 4. 5. 6. 7. 8. 9. //MoveTo、MoveToS、MoveToH //MoveToS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和 USB 接口的鼠标都可 以使用 //MoveToH: 硬件模拟方式,仅支持 PS(圆口)的鼠标 MoveTo 100,200 //把鼠标移动到(100,200)这个点上 intX=50 intY=150 MoveTo intX,intY //把鼠标移动到(intX,intY)这个点上,需要 5.50 以上版本支持.脚本例子: (7.x 语法)复制代码 1. 2. 3. 4. 5. 6. //MoveTo、MoveToS、MoveToH //MoveToS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和 USB 接口的鼠标都可 以使用 //MoveToH: 硬件模拟方式,仅支持 PS(圆口)的鼠标 MoveTo 100,200 //把鼠标移动到(100,200)这个点上 intX=50 7. 8. 9.intY=150 MoveTo intX,intY //把鼠标移动到(intX,intY)这个点上,需要 5.50 以上版本支持.命令名称: 命令功能: 命令参数: 返 回 值: 脚本例子: (8.x 语法)R e s t o re M o us e Po s 恢 复 上 次 保 存 的 鼠 标 位 置保存当前鼠标位置 无 无 复制代码 1. SaveMousePos 2. 3. 4. 5. 6. 7. 8. 9. //保存当前鼠标位置 Delay 100 MoveTo 500,20 Delay 100 RestoreMousePos //将鼠标移动到上一次保存的鼠标位置 //保存/恢复鼠标位置常用于制作网络游戏练功脚本,脚本开始时保存鼠标位置,脚本结束时恢复鼠标位 置, //这样脚本执行后鼠标的位置就不会变化脚本例子: (7.x 语法)复制代码 1. SaveMousePos 2. 3. 4. 5. 6. 7. 8. 9. //保存当前鼠标位置 Delay 100 MoveTo 500,20 Delay 100 RestoreMousePos //将鼠标移动到上一次保存的鼠标位置 //保存/恢复鼠标位置常用于制作网络游戏练功脚本,脚本开始时保存鼠标位置,脚本结束时恢复鼠标位 置, 这样脚本执行后鼠标的位置就不会变化命令名称: 命令功能: 命令参数: 返 回 值: 脚本例子:R i g ht Cl i ck 右 键 单 击模拟点击鼠标右键 参数 1 整数型,次数 无 复制代码 (8.x 语法)1. 2. 3. 4. 5.//RightClick、RightClickS、RightClickH //RightClickS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和 USB 接口的鼠 标都可以使用 //RightClickH: 硬件模拟方式,仅支持 PS(圆口)的鼠标 点击查看使用硬件模拟方式的注意事项 RightClick 5 //在当前鼠标的位置单击鼠标右键 5 次脚本例子: (7.x 语法)复制代码 1. 2. 3. 4. 5. //RightClick、RightClickS、RightClickH //RightClickS: 超级模拟方式,兼容性更强,对键盘和鼠标没有特别的要求,PS2(圆口)和 USB 接口的鼠 标都可以使用 //RightClickH: 硬件模拟方式,仅支持 PS(圆口)的鼠标 点击查看使用硬件模拟方式的注意事项 RightClick 5 //在当前鼠标的位置单击鼠标右键 5 次命令名称: 命令功能: 命令参数: 返 回 值: 脚本例子: (8.x 语法)S a ve M o us e Po s 保 存 当 前 鼠 标 所 在 位 置保存当前鼠标位置 无 无 复制代码 1. SaveMousePos 2. 3. 4. 5. 6. 7. 8. 9. //保存当前鼠标位置 Delay 100 MoveTo 500,20 Delay 100 RestoreMousePos //将鼠标移动到上一次保存的鼠标位置 //保存/恢复鼠标位置常用于制作网络游戏练功脚本,脚本开始时保存鼠标位置,脚本结束时恢复鼠标位 置, //这样脚本执行后鼠标的位置就不会变化脚本例子: (7.x 语法)复制代码 1. SaveMousePos 2. 3. 4. 5. 6. 7. //保存当前鼠标位置 Delay 100 MoveTo 500,20 Delay 100 RestoreMousePos //将鼠标移动到上一次保存的鼠标位置 8. 9.//保存/恢复鼠标位置常用于制作网络游戏练功脚本,脚本开始时保存鼠标位置,脚本结束时恢复鼠标位 置, 这样脚本执行后鼠标的位置就不会变化命令名称: 命令功能: 命令参数: 返 回 值: 脚本例子: (8.x 语法) 脚本例子: (7.x 语法)U nl o ckM o us e 解 除 锁 定 鼠 标 位 置解除 LockMouse 命令对鼠标位置的锁定 无 无 复制代码 1. 复制代码 1. 2. //如果用户使用了 LockMouse 命令而没有使用 UnlockMouse 命令,按键精灵会在脚本结束时自动解除锁 定 UnlockMouse命令名称: 命令功能: 命令参数: 返 回 值: 脚本例子: (8.x 语法)W a i t Cl i ck 按 任 意 鼠 标 键 继 续脚本执行到这一句暂停,按下任意鼠标键之后继续 参数 1 整数型,可选:变量名 无 复制代码 1. last_click=WaitClick() 2. MessageBox &您按下了& & last_click脚本例子: (7.x 语法)复制代码 1. WaitClick last_click 2. MessageBox &您按下了& & last_click三、控制命令命令名称: 命令功能: 命令参数:Ca l l 调 用 过 程调用过程 参数 1 字符串型,过程名 返 回 值: 脚本例子: (8.x 语法)无 复制代码 1. 2. 3. 4. 5. 6. 7. Call 子程序(&我是子程序,被你调用了&) EndScript //支持中文名变量 Sub 子程序(啊) Msgbox 啊 End Sub //定义一个过程,可以在脚本中调用这个过程脚本例子: 复制代码 (7.x 语法)命令名称: 命令功能: 命令参数: 返 回 值: 脚本例子: (8.x 语法)Do 循 环条件循环 参数 1 条件型,循环条件 无 复制代码 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 例子 2: 11. i=0 12. Do Until i=0 13. Msgbox &为什么没有循环到我呢?& 14. Loop 15. Msgbox &循环结束& 16. //当循环条件成立的时候,离开循环体 17. 18. 19. 例子 3: 20. i=0 21. Do Until i=1 22. Msgbox &我停不下来啦!!快住手& 例子 1: //支持 Exit Do 命令退出循环 i=0 Do While i=0 Msgbox &我停不下来啦!!快住手& Loop //当循环条件成立的时候,反复执行循环体 23. Loop 24. //当循环条件不成立的时候,反复执行循环体 25. 26. 27. 例子 4: 28. n=0 29. Do While true 30. 31. 32. 33. 34. 35. Msgbox &我将循环 10 次停下来!!& If n&=10 Then //当循环条件成立的时候,离开循环体 Exit do End if n=n+136. Loop 37. Msgbox n & &次& 38. 39. 40. 例子 5: 41. i = 0 42. Do 43. MessageBox &ok& 44. Loop While i && 0 45. //条件放后面,前面的循环内容可以执行一次!脚本例子: (7.x 语法)复制代码 1. 无命令名称: 命令功能: 命令参数: 返 回 值: 脚本例子: (8.x 语法)Fo r 循 环循环一定次数 参数 1 整数型,循环次数 无 复制代码 1. 2. 3. 4. 5. 6. 7. 8. 9. 例子 2: //支持 Exit For 命令退出循环 例子 1: //支持 Exit For 命令退出循环 For i=0 To 9 Delay 100 Next //循环 10 次 10. For 10 11. Delay 100 12. Next 13. //循环 10 次 14. 15. 16. 例子 3: 17. //支持 Exit For 命令退出循环 18. For i=0 to 19 step 2 19. Delay 100 20. Next 21. //循环 10 次 22. 23. 例子 4: 24. //支持 Exit For 命令退出循环 25. For i=0 to 19 step 2 26. 27. 28. 29. 30. Next 31. //循环 5 次 Delay 100 If i&9 Then Exit For End If脚本例子: (7.x 语法)复制代码 1. For 10 2. 3. 4. Delay 100 EndFor //循环 10 次命令名称: 命令功能: 命令参数: 返 回 值: 脚本例子: (8.x 语法)Funct i o n 函 数函数 多类型,多参数 多类型 复制代码 1. 2. 3. 4. 5. 6. 7. //支持 Exit Function 命令退出函数过程 Msgbox 函数过程(&我是函数,被你调用了&) EndScript Function 函数过程(a) 函数过程=a End Function //定义一个函数过程,可以在脚本中调用这个函数 脚本例子: (7.x 语法)复制代码 1. 无命令名称: 命令功能: 命令参数: 返 回 值: 脚本例子: (8.x 语法)G o s ub 调 用 子 程 序调用过程 参数 1 字符串型,过程名 无 复制代码 1. 2. 3. 4. 5. 6. 7. //可带参数传递 Call 子程序(&我是子程序,被你调用了&) EndScript Sub 子程序(a) Msgbox a End Sub //定义一个过程,可以在脚本中调用这个过程脚本例子: (7.x 语法)复制代码 1. 2. 3. 4. 5. 6. Gosub 子程序 EndScript Sub 子程序 Msgbox &我是子程序,被你调用了& Return 子程序 //定义一个过程,可以在脚本中调用这个过程命令名称: 命令功能: 命令参数: 返 回 值: 脚本例子: (8.x 语法)Goto 跳 转 到 标 记跳转到 Rem 标记处 参数 1 字符串型,标号 无 复制代码 1. 2. 3. 4. 5. Goto 标记 Delay 100 Rem 标记 Msgbox &你直接跳到这里了!!,上面的延迟没有被执行!!& //跳转语句,可以跳转到 rem 标记过的标记处继续执行 脚本例子: (7.x 语法)复制代码 1. 2. 3. 4. 5. Goto 标记 Delay 100 Rem 标记 Msgbox &你直接跳到这里了!!,上面的延迟没有被执行!!& //跳转语句,可以跳转到 rem 标记过的标记处继续执行命令名称: 命令功能: 命令参数: 返 回 值: 脚本例子: (8.x 语法)If 如 果 . . 则判断表达式 参数 1 条件型,表达式 无 复制代码 1. 2. 3. 4. 5. 6. 7. 8. 9. 例子 2: i=1 例子 1: i=0 If i=0 Then Msgbox &条件判断符合被通过!!& End If //通过判断表达式的取值,来执行后面的动作或控制10. If i=0 Then 11. 13. 15. Msgbox &条件判断符合被通过!!& Msgbox &否则条件判断符合被通过!!& Msgbox &否则!!& 12. ElseIf i=1 Then 14. Else 16. End If 17. //通过判断表达式的取值,来执行后面的动作或控制脚本例子: (7.x 语法)复制代码 1. i=0 2. 3. 4. 5. If i=0 Msgbox &条件判断符合被通过!!& EndIf //通过判断表达式的取值,来执行后面的动作或控命令名称: 命令功能:If Co l o r 颜 色 判 断判断屏幕某点的颜色 命令参数:参数 1 整数型,屏幕 X 坐标 参数 2 整数型,屏幕 Y 坐标 参数 3 字符串型,颜色 16 进制值 参数 4 整数型,判断条件返 回 值: 脚本例子: (8.x 语法)无 复制代码 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 例子 2: 12. a=1:b=1 13. IfColor 650,118,&78F0E8&,2 Then 14. 16. MessageBox &a& MessageBox &b& 15. ElseIf b=a Then 17. End if 例子 1: //判断条件(0:等于 1:不等于 2:近似等于) IfColor 860,27,&e1b072&,0 Then Msgbox &颜色等于& Else Msgbox &颜色不等于& End If //判断坐标点(860,27)的颜色是否等于 e1b072脚本例子: (7.x 语法)复制代码 1. 2. 3. 4. 5. 6. 7. //判断条件(0:等于 1:不等于 2:近似等于) IfColor 860,27,e1b072,0 Msgbox &颜色等于& Else Msgbox &颜色不等于& EndIf //判断坐标点(860,27)的颜色是否等于 e1b072命令名称: 命令功能: 命令参数: 返 回 值: 脚本例子:R e m 标 记 /注 释标记命令可当注释 参数 1 字符串型,文字 无 复制代码 (8.x 语法)1. 2. 3.//不支持数字开头的和符号作为标记名 //标记命令.即可当注释,也可以为 Goto 跳转指令作标记 Rem 脚本开始脚本例子: (7.x 语法)复制代码 1. 2. //标记命令.即可当注释,也可以为 Goto 跳转指令作标记 Rem 脚本开始命令名称: 命令功能: 命令参数: 返 回 值: 脚本例子: (8.x 语法)R e s t a rt S cr i p t 重 新 启 动 脚 本 运 行重新启动脚本运行 无 无 复制代码 1. For i=0 to 2 2. 3. 4. 5. Delay 1000 Call Plugin.Msg.ShowScrTXT(0, 0, , &屏幕内容填写& & i, &0000FF&) Next RestartScript //重新启动脚本运行脚本例子: (7.x 语法)复制代码 1. 无命令名称: 命令功能: 命令参数: 返 回 值: 脚本例子: (8.x 语法)S e l e ct 情 况 条 件 选 择根据情况选择条件判断 参数 1 条件型,情况 无 复制代码 1. 2. 3. 4. 5. 6. 7. 8. 9. //不支持判断语句 如:Case a&0 UserVar 变量=0 &输入(0~9)数字& //&&---------------------------------------------以下是选择条件结结构判断 Select Case 变量 Case 0 Msgbox &你输入的数字为:0& Case 1 Msgbox &你输入的数字为:1& Case 2 10. 12. 14. 16. 18. 20. 22. 24. 26.Msgbox &你输入的数字为:2& Msgbox &你输入的数字为:3& Msgbox &你输入的数字为:4& Msgbox &你输入的数字为:5& Msgbox &你输入的数字为:6& Msgbox &你输入的数字为:7& Msgbox &你输入的数字为:8& Msgbox &你输入的数字为:9& Msgbox &你输入的数字不正确,请输入(0~9)数字!&11. Case 3 13. Case 4 15. Case 5 17. Case 6 19. Case 7 21. Case 8 23. Case 9 25. Case Else 27. End Select脚本例子: (7.x 语法)复制代码 1. 无命令名称: 命令功能: 命令参数: 返 回 值: 脚本例子: (8.x 语法)S ub 子 程 序定义一个过程 参数 1 字符串型,过程名 无 复制代码 1. 2. 3. 4. 5. 6. 7. //支持 Exit Sub 命令退出子程序过程 Call 子程序() EndScript Sub 子程序() Msgbox &我是子程序,被你调用了& End Sub //定义一个过程,可以在脚本中调用这个过程脚本例子: (7.x 语法)复制代码 1. 2. 3. 4. Gosub 子程序 EndScript Sub 子程序 Msgbox &我是子程序,被你调用了& 5. 6.Return 子程序 //定义一个过程,可以在脚本中调用这个过程命令名称: 命令功能: 命令参数: 返 回 值: 脚本例子: (8.x 语法)W hi l e 如 果 .. 则 循 环条件循环 参数 1 条件型,循环条件 无 复制代码 1. i=0 2. 3. 4. 5. While i=0 Msgbox &我停不下来啦!!快住手& Wend //当循环条件成立的时候,反复执行循环体脚本例子: (7.x 语法)复制代码 1. i=0 2. 3. 4. 5. While i=0 Msgbox &我停不下来啦!!快住手& EndWhile //当循环条件成立的时候,反复执行循环体四、颜色/图像命令命令名称: 命令功能: 命令参数:Fi nd Ce nt e r Co l o r 中 心 找 色在屏幕区域从中心开始查找指定的颜色 参数 1 整数型,屏幕左上角 x 坐标 参数 2 整数型,屏幕左上角 y 坐标 参数 3 整数型,屏幕右下角 x 坐标 参数 4 整数型,屏幕右下角 y 坐标 参数 5 字符串型,16 进制颜色值 参数 6 整数型,返回 x 坐标 参数 7 整数型,返回 y 坐标 返 回 值: 脚本例子: (8.x 语法)无 复制代码 1. //FindCenterColor left,top,right,bottom,c,x,y 2. 3. 4. 5. 6. 7. 8. 9. //在区域内从中心到外围找颜色为 c 的点,把坐标保存在变量 x 和 y 中 //left,top,right,bottom 都是整数或者整数型变量,说明了区域的左,上,右,下界限 //颜色是类似于&0000FF&的字符串,如果不取变量,别忘了加双引号 //如果没有找到这个颜色,则 x 和 y 的值都被置为-1 FindCenterColor 0,0,800,600,&0000FF&,x,y If x&0 and y&0 Then MoveTo x,y End If10. //在区域(0,0,800,600)中找红色(&0000FF&)的点,如果找到,则把鼠标移动到这个点脚本例子: (7.x 语法)复制代码 1. //VBSCall FindCenterColor(left,top,right,bottom,c,x,y) 2. 3. 4. 5. 6. 7. 8. 9. //在区域内从中心到外围找颜色为 c 的点,把坐标保存在变量 x 和 y 中 //left,top,right,bottom 都是整数或者整数型变量,说明了区域的左,上,右,下界限 //颜色是类似于&0000FF&的字符串,如果不取变量,别忘了加双引号 //如果没有找到这个颜色,则 x 和 y 的值都被置为-1 VBSCall FindCenterColor(0,0,800,600,&0000FF&,x,y) If x&0 and y&0 MoveTo x,y EndIf10. //在区域(0,0,800,600)中找红色(&0000FF&)的点,如果找到,则把鼠标移动到这个点命令名称: 命令功能: 命令参数:Fi nd Co l o r 找 色在屏幕区域从左到右、从上到下的查找指定的颜色 参数 1 整数型,屏幕左上角 x 坐标 参数 2 整数型,屏幕左上角 y 坐标 参数 3 整数型,屏幕右下角 x 坐标 参数 4 整数型,屏幕右下角 y 坐标 参数 5 字符串型,16 进制颜色值 参数 6 整数型,返回 x 坐标 参数 7 整数型,返回 y 坐标返 回 值: 脚本例子: (8.x 语法)无 复制代码 1. //FindColor left,top,right,bottom,c,x,y 2. 3. 4. 5. 6. 7. 8. 9.//在区域内从左到右,从上到下找颜色为 c 的点,把坐标保存在变量 x 和 y 中 //left,top,right,bottom 都是整数或者整数型变量,说明了区域的左,上,右,下界限 //颜色是类似于&0000FF&的字符串,如果不取变量,别忘了加双引号 //如果没有找到这个颜色,则 x 和 y 的值都被置为-1 FindColor 0,0,800,600,&0000FF&,x,y If x&0 and y&0 Then MoveTo x,y End If10. //在区域(0,0,800,600)中找红色(&0000FF&)的点,如果找到,则把鼠标移动到这个点脚本例子: (7.x 语法)复制代码 1. //VBSCall FindColor(left,top,right,bottom,c,x,y) 2. 3. 4. 5. 6. 7. 8. 9. //在区域内从左到右,从上到下找颜色为 c 的点,把坐标保存在变量 x 和 y 中 //left,top,right,bottom 都是整数或者整数型变量,说明了区域的左,上,右,下界限 //颜色是类似于&0000FF&的字符串,如果不取变量,别忘了加双引号 //如果没有找到这个颜色,则 x 和 y 的值都被置为-1 VBSCall FindColor(0,0,800,600,&0000FF&,x,y) If x&0 and y&0 MoveTo x,y EndIf10. //在区域(0,0,800,600)中找红色(&0000FF&)的点,如果找到,则把鼠标移动到这个点命令名称: 命令功能: 命令参数:Fi nd Co l o r E x 模 糊 找 色在屏幕区域模糊查找指定的颜色 参数 1 整数型,屏幕左上角 x 坐标 参数 2 整数型,屏幕左上角 y 坐标 参数 3 整数型,屏幕右下角 x 坐标 参数 4 整数型,屏幕右下角 y 坐标 参数 5 字符串型,16 进制颜色值 参数 6 整数型,查找方式 参数 7 整数型,相似度 参数 8 整数型,返回 x 坐标 参数 9 整数型,返回 y 坐标返 回 值: 脚本例子: (8.x 语法)无 复制代码 1. //FindColorEx left,top,right,bottom,c,type,similar,x,y 2. 3. 4. //在区域内找颜色为 c 的点,把坐标保存在变量 x 和 y 中 //left,top,right,bottom 都是整数或者整数型变量,说明了区域的左,上,右,下界限 //颜色是类似于&0000FF&的字符串,如果不取变量,别忘了加双引号 5. 6. 7. 8. 9. 10.//type 表示查找方式。0 为从上往下,从左往右找;1 为从中心往外围找 //similar 为相似度,取 0.3 到 1 之间的小数。数值越大,对相似度要求越严格。推荐取 0.8 //如果没有找到这个颜色,则 x 和 y 的值都被置为-1 FindColorEx 0,0,800,600,&0000FF&,1,0.8,x,y If x&0 and y&0 Then MoveTo x,y11. End If 12. //在区域(0,0,800,600)中,从中间开始找接近红色(&0000FF&)的点,如果找到,则把鼠标移动到这个 点脚本例子: (7.x 语法)复制代码 1. //VBSCall FindColorEx(left,top,right,bottom,c,type,similar,x,y) 2. 3. 4. 5. 6. 7. 8. 9. 10. //在区域内找颜色为 c 的点,把坐标保存在变量 x 和 y 中 //left,top,right,bottom 都是整数或者整数型变量,说明了区域的左,上,右,下界限 //颜色是类似于&0000FF&的字符串,如果不取变量,别忘了加双引号 //type 表示查找方式。0 为从上往下,从左往右找;1 为从中心往外围找 //similar 为相似度,取 0.3 到 1 之间的小数。数值越大,对相似度要求越严格。推荐取 0.8 //如果没有找到这个颜色,则 x 和 y 的值都被置为-1 VBSCall FindColorEx(0,0,800,600,&0000FF&,1,0.8,x,y) If x&0 and y&0 MoveTo x,y11. EndIf 12. //在区域(0,0,800,600)中,从中间开始找接近红色(&0000FF&)的点,如果找到,则把鼠标移动到这个 点命令名称: 命令功能: 命令参数:Fi nd Pi c 找 图在屏幕区域查找指定相似度的图片 参数 1 整数型,屏幕左上角 x 坐标 参数 2 整数型,屏幕左上角 y 坐标 参数 3 整数型,屏幕右下角 x 坐标 参数 4 整数型,屏幕右下角 y 坐标 参数 5 字符串型,bmp 格式图片路径 参数 6 整数型,相似度 参数 7 整数型,返回 x 坐标 参数 8 整数型,返回 y 坐标返 回 值: 脚本例子:无 复制代码 1. //FindPic left,top,right,bottom,filename,similar,x,y (8.x 语法)2. 3. 4. 5. 6. 7. 8. 9.//在区域内从左到右,从上到下找文件名为 filename 的 bmp 文件,把找到的坐标保存在变量 x 和 y 中 //left,top,right,bottom 都是整数或者整数型变量,说明了区域的左,上,右,下界限 //filename 是一个 bmp 格式的图片,需要您自己抓取,最好是 24 位,把边缘都设为单一的颜色 //similar 为相似度,取 0.5 到 1 之间的小数。数值越大,对图片的相似度要求越严格,速度也越快。推荐 取 0.9 //如果没有找到图片,则 x 和 y 的值都被置为-1 //推荐使用周围颜色单一的图片 MessageBox &这个例子会启动一个 Windows 自带的扫雷程序,然后查找扫雷程序里的笑脸图形& RunApp &winmine.exe&10. //加入一点延时,让扫雷程序顺利启动 11. Delay 2000 12. FindPic 0,50,,&winmine.bmp&,0.9,intX,intY 13. If intX&0 and intY&0 Then 14. 15. 17. MoveTo intX,intY MessageBox &找到图形,鼠标已经移到图形上面& MessageBox &没找到!请确认扫雷程序已经打开,并且您用的是 WinXP 系统&16. Else 18. End If 19. //在区域(0,50,)中找与文件 winmine.bmp 中的图形比较接近的地方,如果找到,则把鼠标移 动到这个地方 20. //6.30 版之后,找图的文件路径可以直接引用附件中的图片,不需要释放,例子 21. MessageBox &下面把鼠标先移到 0,0 点,再用附件找图的方式继续查找笑脸& 22. FindPic 0,50,,&Attachment:\winmine.bmp&,0.9,intX,intY 23. If intX&0 and intY&0 Then 24. 25. 27. MoveTo intX,intY MessageBox &找到图形,鼠标已经移到图形上面& MessageBox &没找到!请确认扫雷程序已经打开,并且您用的是 WinXP 系统&26. Else 28. End If 29. MessageBox &脚本演示结束,最好的脚本永远是您自己制作的。 :-)& 30. EndScript脚本例子: (7.x 语法)复制代码 1. //VBSCall FindPic(left,top,right,bottom,filename,similar,x,y) 2. 3. 4. 5. 6. 7. 8. 9. //在区域内从左到右,从上到下找文件名为 filename 的 bmp 文件,把找到的坐标保存在变量 x 和 y 中 //left,top,right,bottom 都是整数或者整数型变量,说明了区域的左,上,右,下界限 //filename 是一个 bmp 格式的图片,需要您自己抓取,最好是 24 位,把边缘都设为单一的颜色 //similar 为相似度,取 0.5 到 1 之间的小数。数值越大,对图片的相似度要求越严格,速度也越快。推荐 取 0.9 //如果没有找到图片,则 x 和 y 的值都被置为-1 //推荐使用周围颜色单一的图片 MessageBox &这个例子会启动一个 Windows 自带的扫雷程序,然后查找扫雷程序里的笑脸图形& VBSCall RunApp(&winmine.exe&)10. //加入一点延时,让扫雷程序顺利启动 11. Delay 2000 12. VBSCall FindPic(0,50,,&winmine.bmp&,0.9,intX,intY) 13. If intX&0 and intY&0 14. 15. 17. MoveTo intX,intY MessageBox &找到图形,鼠标已经移到图形上面& MessageBox &没找到!请确认扫雷程序已经打开,并且您用的是 WinXP 系统&16. Else 18. EndIf 19. //在区域(0,50,)中找与文件 winmine.bmp 中的图形比较接近的地方,如果找到,则把鼠标移 动到这个地方 20. //6.30 版之后,找图的文件路径可以直接引用附件中的图片,不需要释放,例子 21. MessageBox &下面把鼠标先移到 0,0 点,再用附件找图的方式继续查找笑脸& 22. VBSCall FindPic(0,50,,&Attachment:\winmine.bmp&,0.9,intX,intY) 23. If intX&0 and intY&0 24. 25. 27. MoveTo intX,intY MessageBox &找到图形,鼠标已经移到图形上面& MessageBox &没找到!请确认扫雷程序已经打开,并且您用的是 WinXP 系统&26. Else 28. EndIf 29. MessageBox &脚本演示结束,最好的脚本永远是您自己制作的。 :-)& 30. EndScript命令名称: 命令功能: 命令参数:G e t Pi x e l Col o r 得 到 指 定 点 颜 色得到指定位置的点的颜色 参数 1 整数型,屏幕 X 坐标 参数 2 整数型,屏幕 Y 坐标返 回 值: 脚本例子: (8.x 语法)字符串型,得到的颜色 16 进制值 复制代码 1. GetCursorPos x,y 2. 3. 4. cr1=GetPixelColor(x,y) MessageBox cr1 //得到当前点的颜色,并弹出对话框显示出来脚本例子: (7.x 语法)复制代码 1. VBSCall GetCursorPos(x,y) 2. 3. 4. VBSCall color1=GetPixelColor(x,y) MessageBox color1 //得到当前点的颜色,并弹出对话框显示出来 五、其他命令命令名称: 命令功能: 命令参数: 返 回 值: 脚本例子: (8.x 语法)Delay 延 时脚本暂停执行一段时间 参数 1 整数型,延时时间 无 复制代码 1. 2. 3. 4. 5. 6. 7. //{延时}里面填写”毫秒”数 //1 秒=1000 毫秒, 1 分钟=60000 毫秒, 1 小时=3600000 毫秒 Delay 6000 //延迟 6 秒 x = 5000 Delay x //延时 x 秒,这里 x 是 5 秒脚本例子: (7.x 语法)复制代码 1. 2. 3. 4. 5. 6. 7. //{延时}里面填写”毫秒”数 //1 秒=1000 毫秒, 1 分钟=60000 毫秒, 1 小时=3600000 毫秒 Delay 6000 //延迟 6 秒 x = 5000 Delay x //延时 x 秒,这里 x 是 5 秒命令名称: 命令功能: 命令参数: 返 回 值: 脚本例子: (8.x 语法)Im p o r t 导 入 命 令导入一个 vbs 文件或者插件 dll 文件 参数 1 字符串型,vbs 文件或插件 dll 文件 无 复制代码 1. 2. 3. 4. //当文件被导入后,里面的函数可以直接被调用,不需要使用 VBSCall 或 Plugin 命令 //在 VBScript 块中需要调用 vbs 文件或者插件中的函数时,必须采用这种方式,不能再冠以 VBSCall 或 Plugin 关键字 Import &Memory.dll& //导入 Memory 插件命令 脚本例子: (7.x 语法)复制代码 1. 2. 3. 4. //当文件被导入后,里面的函数可以直接被调用,不需要使用 VBSCall 或 Plugin 命令 //在 VBScript 块中需要调用 vbs 文件或者插件中的函数时,必须采用这种方式,不能再冠以 VBSCall 或 Plugin 关键字 Import Memory.dll //导入 Memory 插件命令命令名称: 命令功能: 命令参数:Inp ut B o x 用 户 输 入 对 话 框在对话框中显示提示,等待用户输入文本或单击按钮,并返回文本框内容。 参数 1 字符串型,消息字符串 参数 2 字符串型[可选],标题 参数 3 字符串型[可选],提示框默认内容 参数 4 整数型[可选],对话框 X 坐标位置 参数 5 整数型[可选],对话框 Y 坐标位置返 回 值: 脚本例子: (8.x 语法)字符串型,返回文本框内容 复制代码 1. Dim Input 2. 3. 4. 5. 6. 7. 8. 9. //[可选]意思是,也可以不需要填参数 //如下: Dim Input Input = InputBox(&请输入名字:&) Input = InputBox(&请输入名字:&,&提示:&,&张三&,0,0) MsgBox &输入: & & Input10. MsgBox &输入: & & Input脚本例子: (7.x 语法)复制代码 1. Dim Input 2. 3. 4. 5. 6. 7. 8. 9. //[可选]意思是,也可以不需要填参数 //如下: Dim Input Input = InputBox(&请输入名字:&) Input = InputBox(&请输入名字:&,&提示:&,&张三&,0,0) MsgBox &输入: & & Input10. MsgBox &输入: & & Input 命令名称: 命令功能: 命令参数: 返 回 值: 脚本例子: (8.x 语法)LogStart 开 始 记 录 日 志记录日志 字符串型:文件名 无 复制代码 1. 2. 3. 4. 5. 6. 7. LogStart &C:\a.log& //记录日志 For i = 0 To 3 TracePrint &保存次数:& & i Call Plugin.Msg.ShowScrTXT(0, 0, , &屏幕内容填写:& & i, &0000FF&) Next LogStop //记录日志停止 TracePrint &这句不会输出到日志里!&脚本例子: (7.x 语法)复制代码 1. 无命令名称: 命令功能: 命令参数: 返 回 值: 脚本例子: (8.x 语法)LogStop 停 止 日 志 记 录停止日志记录 无 无 复制代码 1. 2. 3. 4. 5. 6. 7. LogStart &C:\a.log& //记录日志 For i = 0 To 3 TracePrint &保存次数:& & i Call Plugin.Msg.ShowScrTXT(0, 0, , &屏幕内容填写:& & i, &0000FF&) Next LogStop //记录日志停止 TracePrint &这句不会输出到日志里!&脚本例子: (7.x 语法)复制代码 1. 无命令名称:MessageBox 弹 出 对 话 框 命令功能: 命令参数: 返 回 值: 脚本例子: (8.x 语法)弹出一个窗口 参数 1 字符串型,提示内容文字 无 复制代码 1. 2. 3. 4. MessageBox &弹出窗口& //提醒: 按键 VBS 语句中也提供了 MessageBox 命令,可以支持变量,因此 MessageBox 命令也可以直接 写成支持变量的方式 x = &提醒窗口& MessageBox x脚本例子: (7.x 语法)复制代码 1. 2. 3. 4. MessageBox &弹出窗口& //提醒: 按键 VBS 语句中也提供了 MessageBox 命令,可以支持变量,因此 MessageBox 命令也可以直接 写成支持变量的方式 x = &提醒窗口& MessageBox x命令名称: 命令功能: 命令参数:Put A t t a chm e nt 释 放 附 件把当前脚本包含的附件展开到指定的路径下 参数 1 字符串型,可选:路径 参数 2 字符串型,可选:要释放的文件返 回 值: 脚本例子: (8.x 语法)无 复制代码 1. 2. 3. 4. 5. 6. 7. //[路径]是指定的相对路径或者绝对路径。 //如果省略[路径]或者[路径]为 . ,则默认展开到按键精灵所在的文件夹中 //可以指定要释放的文件,允许使用通配符,如 *.bmp。如果不指定要释放的文件,则默认释放所有文件 PutAttachment &c:\&,&*.bmp& //将附件中所有后缀是 bmp 的文件释放到 c 盘 PutAttachment &.\plugin&,&*.dll& //将附件中所有后缀是 dll 的文件释放到当前文件夹的 plugin 目录下脚本例子: (7.x 语法)复制代码 1. 2. 3. 4. 5. //[路径]是指定的相对路径或者绝对路径。 //如果省略[路径]或者[路径]为 . ,则默认展开到按键精灵所在的文件夹中 //可以指定要释放的文件,允许使用通配符,如 *.bmp。如果不指定要释放的文件,则默认释放所有文件 PutAttachment c:\ *.bmp //将附件中所有后缀是 bmp 的文件释放到 c 盘 6. 7.PutAttachment .\plugin *.dll //将附件中所有后缀是 dll 的文件释放到当前文件夹的 plugin 目录下命令名称: 命令功能: 命令参数: 返 回 值: 脚本例子: (8.x 语法)R unA p p 运 行启动一个程序或者打开一个文件 参数 1 字符串型,要运行的程序或者文件 无 复制代码 1. 2. 3. //如果程序路径不是变量,别忘了加双引号 RunApp &notepad.exe& //启动 Windows 记事本程序脚本例子: (7.x 语法)复制代码 1. 2. 3. //如果程序路径不是变量,别忘了加双引号 VBSCall RunApp(&notepad.exe&) //启动 Windows 记事本程序命令名称: 命令功能: 命令参数: 返 回 值: 脚本例子: (8.x 语法)S a yS t r i ng 输 入 文 本在当前窗口输入文字 参数 1 字符串型,表达式 无 复制代码 1. 2. 3. SayString &你好啊& x = &我很好& SayString x脚本例子: (7.x 语法)复制代码 1. 2. 3. SayString &你好啊& x = &我很好& SayString x命令名称: 命令功能:S e t S i mM o d e 设 置 模 拟 方 式设置模拟方式 命令参数: 返 回 值: 脚本例子: (8.x 语法)参数 1 整数型,设置模拟方式 无 复制代码 1. 2. 3. 4. 5. 6. 7. 8. 9. //模拟方式(0 普通|1 硬件|2 超级) MessageBox &这个例子会演示 普通/硬件/超级 这三种模拟方式的效果,点击确定后 3 秒钟开始模拟,会 用普通模拟按 3 下 a,硬件模拟按 3 下 b,超级模拟按 3 下 c& Delay 3000 SetSimMode 0 KeyPress 65,3 MoveTo 0,0 Delay 1000 SetSimMode 1 KeyPress 66,310. MoveTo 100,100 11. Delay 1000 12. SetSimMode 2 13. KeyPress 67,3 14. MoveTo 200,200 15. MessageBox &演示结束&脚本例子: (7.x 语法)复制代码 1. 2. 3. 4. 5. 6. 7. 8. 9. //模拟方式(0 普通|1 硬件|2 超级) MessageBox &这个例子会演示 普通/硬件/超级 这三种模拟方式的效果,点击确定后 3 秒钟开始模拟,会 用普通模拟按 3 下 a,硬件模拟按 3 下 b,超级模拟按 3 下 c& Delay 3000 SetSimMode 0 KeyPress 65,3 MoveTo 0,0 Delay 1000 SetSimMode 1 KeyPress 66,310. MoveTo 100,100 11. Delay 1000 12. SetSimMode 2 13. KeyPress 67,3 14. MoveTo 200,200 15. MessageBox &演示结束& 16.命令名称: 命令功能:Tr a ce Pr i nt 调 试 输 出在调试窗口打印文字 命令参数: 返 回 值: 脚本例子: (8.x 语法)参数 1 字符串型,变量名 无 复制代码 1. x=100 2. 3. 4. //可用于输出变量的值 TracePrint x //在调试窗口输出变量 x 的值脚本例子: (7.x 语法)复制代码 1. 2. 3. //可用于输出变量的值 TracePrint x //在调试窗口输出变量 x 的值命令名称: 命令功能: 命令参数:U s e r Va r 用 户 定 义 变 量用于支持用户设置脚本参数 参数 1 字符串型,变量 参数 2 字符串型,默认值返 回 值: 脚本例子: (8.x 语法)字符串型,设置的值 复制代码 1. 2. 3. 4. 5. 6. 7. 8. 9. //标准型自定义变量 //格式: UserVar {变量}={默认值} {注释} //解释:这个命令主要用于用户自定义的设置功能 UserVar var1=30 &当 HP<多少%时,使用红药& UserVar var2=30 &当 MP<多少%时,使用蓝药& //当用户使用这个脚本的时候,可以对这 var1 和 var2 这两个变量的取值进行设置 //下拉型自定义变量 //格式: UserVar 变量=DropList{选项 0:值 0|选项 1:值 1|选项 2:值 2}=默认显示的选项编号 {注 释} //解释:这个命令预先设定多个变量值,用户可在基面通过下拉方式进行选择 &:0.3}=2 &自动补血设置& 11. //特别提醒:默认显示的选项编号从 0 开始 10. UserVar Var1=DropList{&低于 10%时补血&:0.1|&低于 20%时补血&:0.2|&低于 30%时补血脚本例子: (7.x 语法)复制代码 1. 2. 3. //标准型自定义变量 //格式: UserVar {变量}={默认值} {注释} //解释:这个命令主要用于用户自定义的设置功能 4. 5. 6. 7. 8. 9.UserVar var1=30 当 HP<多少%时,使用红药 UserVar var2=30 当 MP<多少%时,使用蓝药 //当用户使用这个脚本的时候,可以对这 var1 和 var2 这两个变量的取值进行设置 //下拉型自定义变量 //格式: UserVar 变量=DropList{选项 0:值 0|选项 1:值 1|选项 2:值 2}=默认显示的选项编号 {注 释} //解释:这个命令预先设定多个变量值,用户可在基面通过下拉方式进行选择 补血设置10. UserVar Var1=DropList{低于 10%时补血:0.1|低于 20%时补血:0.2|低于 30%时补血:0.3}=2 自动 11. //特别提醒:默认显示的选项编号从 0 开始命令名称: 命令功能: 命令参数: 返 回 值: 脚本例子: (8.x 语法)V B S B e g i n. . VB S End VB S 执 行 块构成一个 VBScript 块 无 无 复制代码 1. VBSBegin 2. 3. 4. 5. 6. 7. 8. 9. 11. 12. 13. 14. 15. VBSEnd 16. //下面是使用过程函数 17. name 10 18. Next VBSEnd //在 VBScript 块中可以使用任何 VBScript 语句(包括 VBScript 的条件判断、子程序调用等等),也可 以使用大多数的按键精灵命令。 例子 2: //定义过程必须放在脚本开头! '这是一个注释 Function name(list) msgbox list+1 End Function For i=0 to 5 Msgbox &我在循环运行 VBScript 块哦!!& '这是注释10. VBSBegin脚本例子: (7.x 语法)复制代码 1. VBSBegin 2. 3. For i=0 to 5 Msgbox &我在循环运行 VBScript 块哦!!& 4. 5. 6. 7. 8. 9. 11. 12. 13. 14. Next VBSEnd'这是注释//在 VBScript 块中可以使用任何 VBScript 语句(包括 VBScript 的条件判断、子程序调用等等),也可 以使用大多数的按键精灵命令。 例子 2: //定义过程必须放在脚本开头! '这是一个注释 Function name(list) msgbox list+1 End Function10. VBSBegin15. VBSEnd 16. //下面是使用过程函数 17. name 10 18.Windowns 扫雷游戏脚本实例:Rem Start LockMouse //查找扫雷窗口,句柄存为 hd Plugin hd=Window.Find(&扫雷&,&扫雷&) If hd=0 MessageBox &你应该没有打开扫雷游戏吧?& Else //获得窗口四个角的坐标 Plugin WRect=Window.GetWindowRect(hd) VBS Dim x(4) VBS i=1 While i&=4 VBS WL=Len(WRect) VBS LL=InStr(WRect,&|&) If LL&&0 VBS x(i)=left(WRect,LL-1) VBS WRect=right(WRect,Wl-LL) Else VBS x(i)=WRect EndIf VBS i=i+1 EndWhile VBS Dim hg,sg //计算横格数 VBS hg=int((x(3)-x(1)-20)/16) //计算竖格数 VBS sg=Int((x(4)-x(2)-100)/16) MoveTo x(3)+1,x(4)+1 LeftClick 1 Delay 10 Plugin Window.SendKeyPress(hd,88) Delay 10 Plugin Window.SendKeyPress(hd,89) Delay 10 Plugin Window.SendKeyPress(hd,90) Delay 10 Plugin Window.SendKeyPress(hd,90) Delay 10 Plugin Window.SendKeyPress(hd,89) Delay 10 Plugin Window.SendKeyPress(hd,16) Delay 10 Plugin Window.Active(hd) //雷区最左上角一格的坐标 VBS x0=x(1)+21:y0=x(2)+100 VBS i=0 //用鼠标扫描整个雷区 While i&sg VBS j=0 While j&hg MoveTo x0+j*16,y0+i*16 Delay 5 IfColor 0,0,ffffff,0 LeftClick 1 Else IfColor 0,0,0,0 Else KeyPress 116,1 Goto Start EndIf EndIf VBS j=j+1 EndWhile VBS i=i+1 EndWhile EndIf UnlockMouse EndScript按键插件《扫雷》系列一【读取内存】 内存读取插件,用于读取某窗体句柄所在进程内存。与按键精灵本身提供的“VBSCall ReadMemory()”功能几乎相 同。 不同点在于: 1、VBSCall ReadMemory()读取最前台窗口内存。Plugin Memory.Read()读取某窗体的内存。 2、Memory 插件,提供更多更丰富的功能。 在给出 Memory 插件例子之前,先说说 windows 如何管理进程内存的,知其然要知其所以然,避免概念上的错误 理解。 在说内存之前,我们要知道 windows 是多进程的操作系统,CPU 时间片根据进程优先级的不同在各个进程中切 换,从而实现了多进程的管理机制。要详细解释“进程-内存”的关系比较复杂,一两篇文章也说不清楚。这里我就简要 说明几个与本文有关联的系统知识。 绝大多数学过计算机编程的同学,应该都清楚,在编写程序的时候,根本就没有多进程的概念,也不会向这方面 想。但一到涉及到内存的时候就会犯迷糊,windows 这么多进程,到底应该读取哪个地方的内存呢?其实不是这样的, windows 只是模拟出多进程的环境,实际的运算都在 CPU 上完成,而一个 CPU 在一个时间只能处理一条指令,也就是 说,对于 cpu 而言,只是单进程操作(请允许我提到 CPU、指令这些与汇编有关系的内容,我想不到如何能把这个概 念简单的描述出来,这些是概念,看懂意思就没问题了) 。windows 模拟多进程的操作,大概是这样的:把进程 A 送到 CPU 中处理 20 微秒-&保存进程 A 环境-&进程 B 送到 CPU 中处理 20 微秒-&保存进程 B 环境……一直循环这个过程。 CPU 的速度很快,系统在多进程切换,我们基本上感觉不到。所以实现了“多进程”。 现在轮到内存了:_) 内存这里是个比较卡人的地方,当初我也卡在这里过,其实当初也是因为概念不明而已,我在这里详细说说。 windows 有一套自己的内存管理方案,每个进程都独享独立的 4G 虚拟地址空间(注意这里,是虚拟地址内存,非物理 内存,当初我就卡在这里了) 。这个 4G,在每个进程中都是真实存在的,但因为是虚拟内存(注意这里,这里所说的 虚拟内存和调节 windows 的虚拟内存不是一个东西) ,程序用到的内存部分,加载到物理内存,供给 cpu 读取,用不到 的,依然还是硬盘上的文件。所以实际的物理内存占用并不高。明白这个概念,之后的东西就好办了。我们在读取内 存的时候,读出来的都在虚拟里,windows 是不允许用户直接操作物理内存的(这里涉及到 ring0/3 环的问题,与本文 无关,略过,只要记住,我们不要考虑物理内存就可以了) 。举个例子,我们读取进程 A 中的 50000 地址,再读取进程 B 中的 50000 地址,读的地址,完全不同,因为他们放到两快虚拟内存中。至于它到底在物理内存中哪个位置,只有 windows 知道(其实对程序员来说,也没有必要知道) 。 我反复强调了“进程-内存”,是因为我当初卡在这里过,如果看到这里,你还是云里雾里,那么建议你回头再看一 遍。 讲完了概念,进入正题: 我们要做的,正是读取 windows 自带的经典游戏《扫雷》中的“雷”所在的位置,旨在用代码描述内存插件的使用 方法。我始终坚信,代码是最好的老师,比任何教程都强。所以我直接给出注释全面的代码,以供分析。 //********************************** //* 以下例子只支持 xp 操作系统中扫雷 * //********************************** // //hwnd 中保存扫雷游戏的窗体句柄 Dim hwnd //查找《扫雷》的窗体句柄 Plugin hwnd=Window.Find(&扫雷&,&扫雷&) If hwnd=0 MessageBox &扫雷游戏没有打开哟!& EndScript EndIf //x, y 中分别保存当前扫雷的长与宽的格子数量 Dim x, y Plugin x=Memory.Read32Bit(hwnd,&h1005334) Plugin y=Memory.Read32Bit(hwnd,&h1005338) //建个双重循环,循环所有格子,这里用 VBScript 的循环会很方便,所以加入 vbsbegin 块 Import Memory.dll VBSBegin Dim i, j, value, strview strview=&说明:@代表安全,*代表雷& & vbcrlf For i=0 to x-1 For j=0 to y-1 value=Memory.Read8Bit(hwnd,&h1005360+(j+i*32+1)) '注意:VBSBegin 中的注释是“'” '//8A=显示出的雷 '//8F=未显示出的雷 If value=&h8A& or value=&h8F& then strview=strview & & *& Else strview=strview & & @& End If Next strview=strview & vbcrlf Next MessageBox strview VBSEnd 相信大家都可以通过插件的函数名称判断函数的作用,以上代码很简单,我不做过多讲解了哈 下部分,轮到 windows 插件,我会详细讲解“窗体位置”的概念按键插件《扫雷》系列二【窗口位置】按照惯例,首先介绍下“窗口坐标系”、“窗口工作区”和“窗口客户区”的概念,最后给出自动扫雷脚本。 “窗口坐标系”是我自创的描述词,术语叫什么我还真不清楚。这个概念很容易理解,我们都知道桌面分辨率,分 辨率越高,显示的 桌面内容就越多。我们也知道,窗口是“摆放”在桌面上的,甚至可以超出桌面范围(比如随意把一个窗口拖到桌面之 外) 。而窗口坐标系就 是窗口摆放在桌面的位置。假设桌面是 1024× 768,那么桌面左上角坐标就是 0,0。桌面右下角坐标就是 1023× 767(因 为是从 0 开始) 。这样, 窗口所在桌面的坐标就是“窗口坐标系”了。 “窗体工作区”和“窗体客户区”,这两个词从字面上很难理解,微软的官方文档就是这么叫的。我用一张图来表示 工作区和客户区 有什么不同。 从上图可以看出,工作区包含了窗体的四条边框,上面的边框最宽,叫做标题栏,其他的边框只有窄窄的一条。 为什么要区分工作区 和客户区呢?大家会议下 XP 系统默认的标题栏高度和 98/2000 系统默认的标题栏高度就明白了。也就是说,我们编写 按键脚本的时候,直接从客 户区入手,这样就不用考虑标题栏高度和四条窗体边框的问题了。 下面的脚本例子,建议大家输出看看结果,对理解工作区和客户区有帮助: //************************** //*窗体工作区 与 窗体客户区* //************************** // //启动扫雷 VBSCall RunApp(&winmine.exe&) //等待扫雷启动完毕 Delay 500 dim hwnd Plugin hwnd=Window.Find(&扫雷&,&扫雷&) //移动扫雷窗口到 0,0 位置 Plugin Window.Move(hwnd,0,0) dim winrect, clirect //获得 windows 区域 Plugin winrect=Window.GetWindowRect(hwnd) //获得 client 区域 Plugin clirect=Window.GetClientRect(hwnd) MessageBox &窗体工作区:& & winrect & vbcrlf & &窗体客户区:& & clirect 明白了基本概念之后,下面给出扫雷脚本的鼠标控制例子: //********************************** //* 以下例子只支持 xp 操作系统中扫雷 * //********************************** // //hwnd 中保存扫雷游戏的窗体句柄 Dim hwnd //查找《扫雷》的窗体句柄 Plugin hwnd=Window.Find(&扫雷&,&扫雷&) If hwnd=0 MessageBox &扫雷游戏没有打开哟!& EndScript EndIf //获取扫雷窗口位置 dim cliectRect Plugin cliectRect=Window.GetClientRect(hwnd) //rx, ry 保存雷区左上角第一个雷的坐标 dim rx, ry //按“|”分割字符串 dim tmp tmp=split(cliectRect,&|&) //:是 VB 里的一种多行语句写成一行的用法,同样试用于按键脚本 rx=cint(tmp(0))+20 : ry=cint(tmp(1))+60 //x, y 中分别保存当前扫雷的长与宽的格子数量 Dim x, y Plugin x=Memory.Read32Bit(hwnd,&h1005334) Plugin y=Memory.Read32Bit(hwnd,&h1005338) //建个双重循环,循环所有格子,这里用 VB 的循环会很方便,所以加入 vbsbegin 块 Import Memory.dll VBSBegin Dim i, j, value For i=0 to x-1 For j=0 to y-1 value=Memory.Read8Bit(hwnd,&h1005360+(j+i*32+1)) '//F==非雷 If value&&&hF&then MoveTo rx+j*16,ry+i*16 Delay 100 RightClick 1 Delay 100 End If Next Next VBSEnd 如果上一章的内容弄懂了,这篇还是真容易理解的。 下章,准备说一下“消息循环”机制,和用消息控制扫雷按键插件《扫雷》系列二【窗口消息】新人总会在论坛里看到后台挂机,后台消息,到底消息是什么,为什么可以实现后台,是本章描述的重点。同样 最后会给出消息的扫 雷例子。 消息,在 windows 里占有至关重要的位置,可以说 windows 就是由消息驱动的。消息,顾名思义,就是通知、告 知某个窗体或某个控件 现在应该接到了什么命令。windows 的消息非常的多,有鼠标移动的,键盘按下弹起的,有窗口位置移动的,改变窗 体大小,最小化,最大化等 。可以说,所能看到的桌面窗体变化、鼠标键盘操控,最终体现在 windows 里的都是消息。 windows 掌管一个大的消息循环,为理解方面,我用一张草图描述这个流程: 由上图可知,消息最终发送到每个窗体,每个窗体接到这个消息命令后,怎么处理那都是各个窗体自己的活了。 但是前面的部分确是 由 windows 掌管的。 明确了以上的内容,大家应该知道为什么有些游戏用消息不好使,有些游戏游戏用消息好使了。如果游戏自己做 了某种判断,或者有 些反外挂的程序在运行(比如 NP) ,那么消息对其无效,可以简单理解,游戏对消息做了过滤(这么描述不准确,但 我们只要知道了这点,就 足够了,如想了解更多消息的内容,百度上有很多文章) 。所以,消息不是所有游戏都通用的。 接下来说另外一个概念,窗口的组成。我们可以看到一个窗口,并且拖拉,最小化它。但是这个窗口,不一定由 一个窗体组成。比如 IE 浏览器,IE 浏览器就好比一个房子,里面有很多房间,每个房间就是一个窗体,这些房间共同组成了房子。用过 VB 的朋友,应该很容易理解 。每拖的一个控件,都有独立的窗口句柄(句柄的概念在后面会讲到) ,只有 table 除外。只有游戏不同,一般的游戏, 通常只有一个窗体,因 为是 DX 成像,反到不需要这许多控件。什么是 DX 成像?就是用 DX 把要显示的画面,画到窗体上。 以上内容说的非常混乱,简单理解就是,普通应用程序有很多个窗口组成一个大的窗口。而游戏,一般只有一个 窗口。 这么多窗口,windows 怎么知道哪个是哪个呢?聪明的 windows 引入了“窗体句柄”的概念。一个窗口对应一个数 字,这个数字在文档 中就叫做句柄了。注意,没有一个句柄是相同的,好像门牌号一样,这样就可以顺利区分到底在给哪个窗口发送消息 了。还有一点也非常重要,这个句柄是 windows 随机分配的,有效期只在这个窗口销毁前。换句话说,窗口 A 只要存在,那么他的句柄就是固 定的,如果关闭、再启动窗 口 A,那么窗口 A 的句柄就会变化。假如连续启动了 3 个窗口 A,那么 3 个窗口 A 的句柄也不一样。 罗里八梭的说了这么多,也不知道大家是否有看明白。如果没看明白,就回头再看一遍,还看不明白,跟帖留言。 总结一下我前面所说的东西: 1、windows 掌管消息分发,发到窗口后,由窗口自行处理 2、一个窗口,可能由 1-N 个窗口组成 3、每个窗体句柄,标识一个窗体或控件 4、窗体句柄的生存周期,就是窗体的生存周期 5、同窗体每次启动,其句柄并不相同 我使用了 361 的后台消息插件,不多废话,直接上例子: //********************************** //* 以下例子只支持 xp 操作系统中扫雷 * //********************************** // //hwnd 中保存扫雷游戏的窗体句柄 Dim hwnd //查找《扫雷》的窗体句柄 Plugin hwnd=Window.Find(&扫雷&,&扫雷&) If hwnd=0 MessageBox &扫雷游戏没有打开哟!& EndScript EndIf //x, y 中分别保存当前扫雷的长与宽的格子数量 Dim x, y Plugin x=Memory.Read32Bit(hwnd,&h1005334) Plugin y=Memory.Read32Bit(hwnd,&h1005338) //建个双重循环,循环所有格子,这里用 VB 的循环会很方便,所以加入 vbsbegin 块 Import Memory.dll Import BGKM5.dll VBSBegin Dim i, j, value For i=0 to x-1 For j=0 to y-1 value=Memory.Read8Bit(hwnd,&h1005360+(j+i*32+1)) '//小于&h80 的,都不是雷 If value&&h80& then //这里的 20 和 60 大家体会一下,16 是雷格式的间距: ) BGKM5.LClick hwnd,20+j*16,60+i*16 Else BGKM5.RClick hwnd,20+j*16,60+i*16 End If Next Next VBSEnd 有没有发现代码居然比上一章的简单,没错,对消息来说,只需要知道给出这个控件偏移的 x,y 然后点击就可以 了。 最后说一下,扫雷只有一个窗口,而且带有游戏性,这也是为什么我拿扫雷做例子的原因: )网络游戏循环找图找坐标详细教程(供新手学习)拜读了 LZ 的贴以后深感 LZ 的无私奉献把这么核心的能发出来,我总结上贴把 LZ 的所发的精简写成源码发出来!图的部 分大家自己抓[General] Description=我的脚本 BeginHotkey=121 BeginHotkeyMod=0 PauseHotkey=0 PauseHotkeyMod=0 StopHotkey=123 StopHotkeyMod=0 RunOnce=1 EnableWindow= Enable=1 AutoRun=0 [Repeat] Type=0 Number=1 [Relative] SetupOCXFile= [Comment] Content=图片自己加好了[Script] VBS dim s(4),t, x1, y1 VBS s(0)=&0&:s(1)=&1&:s(2)=&2&:s(3)=&3&:s(4)=&k& VBS t=0 R}

我要回帖

更多关于 按键精灵调试输出 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信