当前位置: 首页 > backend >正文

按键精灵--VS挤房器

程序下载地址 10月19日更新 http://u.115.com/file/f57d346f92

晕...估计是CSDN抽了,上传了两次都不能下,火了,换成115网盘,可以用迅雷下载

刚开始时,只想给自己弄一个,然后就简简单单的使用了录制功能,结果发现,这样不够准确,于是就决定自己编程写一个,随后就掉入了这个深渊中。。。大前天吧,竟然弄到了3点,我都觉得不可思议,更不可思议的是,早上8点就醒了,起来后,竟然继续弄。。。我开始佩服我自己了~什么是按键精灵?自己百度去~

言归正传,现在讲讲我按键精灵编程的学习心得。

按键精灵的程序是用汇编和vbs编程的,这是我写的最早版本的VS挤房器,版本为1.0。是根据自己电脑的情况编写的,目前应该只适用于1280*800分辨率,并且任务栏隐藏的电脑。

我的思路是:利用GetCUrsorPos获取当前鼠标位置,并且保存,即将要挤房间位置记住,然后利用到一个死循环,先等待5秒,由于VS挤房成功后,在右下方的启动游戏按钮是黄色的,于是我并利用这个黄色判断是否挤房成功,如果失败的话,就将鼠标移动弹出窗口的取消按钮,然后按下,接着等待10秒后,移到刚刚保存的鼠标位置,双击重新开始循环挤房,共计时间间隔为15秒。

代码如下:

i=0 GetCursorPos mx,my //获取当前鼠标位置,保存到mx,my中 //此处开始死循环 Do while i=0 MoveTo mx,my LeftDoubleClick 1 //通过截图或颜色此处判断是否已进房间,是否跳出循环 Delay 5000 IfColor 807,733,"1cd3ff",2 Then Msgbox "挤房成功" EndScript Else MoveTo 740,530 LeftClick 1 End if Delay 10000 Loop 

没过多久,就想到了一件事,这个VS挤房器的使用情况是一些朋友都进了满的房间,而另外几个却没进去,这个时候,大家就都需要这软件了,而不是就我一个人用。

于是我就准备弄第二版,即1.2。思路大致同上,只增加了不同分辨率的判断,利用按键精灵的插件获取电脑的分辨率,然后使用Select Case语句进行流程控制。

与之前一版相比,新增内容如下:

1.增加了对另外一个1366*768分辨率的支持

2.考虑到用户电脑配置和网速的差异,添加了用户自定义时间间隔变量

3.将挤房成功的条件改成判断启动游戏旁边那一片蓝色横条上。

4.挤房成功后,会有蜂鸣和弹出对方框提示。

width = Plugin.Sys.GetScRX() high = Plugin.Sys.GetScRY() //获取当前分辨率 i=0 UserVar Var1=DropList{"15秒":"0"|"16秒":"1000"|"17秒":"2000"|"18秒":"3000"}=0 "挤房间隔(默认15秒),若出现“请稍后再试”,则将此值调大,修改完记得保存配置" GetCursorPos x, y Do While i=0 MoveTo x,y LeftDoubleClick 1 //通过截图或颜色此处判断是否已进房间,是否跳出循环 //Delay 500 //IfColor 551,398,"24F5F6",2 Then // MoveTo 603,451 // LeftClick 1 //Else //End if //判断分辨率为1280的是否已在房间 Delay 4500 Select Case width Case 1280 IfColor 890,695,"E69F02",2 Then Call Plugin.Media.Beep(1760, 800) Msgbox "挤房成功" EndScript Else MoveTo 740,511 LeftClick 1 End if //以上是1280*800分辨率 Case 1366 IfColor 971,659,"E69F02",2 Then Call Plugin.Media.Beep(1760, 800) Msgbox "挤房成功" EndScript Else MoveTo 784,498 LeftClick 1 End if //以上是1366*768分辨率 Case Else MsgBox "未知分辨率,请联系作者QQ345911220" EndScript End Select Delay 10500+Var1 Loop 

依旧是没过多久-_-|||。。。我想到了分辨率是很多很多的,我不可能一一去试,获得该分辨率的按钮坐标之类的,于是我就在想能不能制作适用于所有分辨率的程序呢?最开始我想到了利用屏幕分辨率的比例来决定坐标,不过没过多久就被我否决了,因为我发现,VS平台窗口的一部分是不随分辨率而改变的,而且windows的任务栏是否隐藏对坐标也很有影响,第一方案失败。

那个时候我同时也在研究后台挤房(作为文章最后再讲解),发现了一个功能,能获取当前窗口的大小,于是我就想利用VS平台窗口大小,然后进行定位坐标位置,因为VS平台窗口大小的改变,只对房间列表产生大小变化,而且挤房失败的弹出窗口不受分辨率影响,它是位于VS平台窗口的最中央。换句话说,我要使用的坐标有起始房间坐标,判断是否进入房间坐标,若没进入,则按取消按钮坐标,判断是否已在房间坐标,若已在房间,则按是按钮坐标。这些坐标都可以根据VS平台窗口大小来判断。

我将这个版本称为1.3,更新日记如下:

1. 对所有分辨率都能适用

2. 对于最新VS3.1平台版本能自动判断是否已在房间,而3.0版本由于没有显著颜色差异,导致无法判断

3. 将判断是否已进入房间的条件改成了左中央的那条充值帮助上,背景是褐红色的,虽然这个有点小,并且是进入房间后,最后一个加载的,所以对于判断会造成相应的延迟,但是,这个位置恰好是不随分辨率大小而变化的,而且是3.1和3.0平台重合图片。

4. 将挤房失败的按钮放到了右上方X上,原因是。。。我想给3.1和3.0版本找一个共同位置,结果发现还是没有重合,懒的改回去了。

5. 将挤房器分为两个版本,大家根据自己的平台使用相应的版本。

最后提下后台操作:

这是最令我崩溃的事。。。研究了好久,才发现,我对于后台完全是新手。。。

第一次,将VS平台最小化,然后进行试验,失败,后来发现是因为VS最小化后,与之相应的窗口也就不见的。。。按键精灵无法对其进行操作。

第二次,利用窗口句柄,结果发现弹出窗口的句柄无法找到。。。悲剧。。。现在就卡在这一步,无法按到取消VS失败的弹出窗口。

第三次。。。。

最后的结论是,对于后台,我还要研究研究

转载于:https://www.cnblogs.com/wfx/archive/2010/10/11/1931929.html

http://www.xdnf.cn/news/11071.html

相关文章:

  • 【雕爷学编程】MicroPython手册之 Zephyr 磁盘访问
  • 如何使用HTML制作个人网站(如何搭建个人博客)
  • ps切图抠图详解-web前端(转)
  • 使用51单片机制作秒表的详细过程
  • 什么是tftp服务器? 如何搭建tftp服务器?
  • PCB 铜厚厚度和线宽的选择
  • SQL触发器实例
  • 中国厉害的黑客组织?别说只知道红客联盟,知道“他们”才厉害
  • Windows下搭建ffmpeg+VS2008开发环境详细教程
  • 网站建设的一些基本教程操作
  • mysql 取int_MySQL 字符串 转 int/double CAST与CONVERT 函数的用法
  • 校长娱乐-我叫MT套装掉落详情
  • MathType 上弧线错误,出现方框和变大的问题解决
  • 文章有点长啊,手把手教你实现一个 Python 计时器
  • c语言万能编程模板_C语言程序设计50例(经典收藏)
  • 7个最好用的自助建站工具,2024年推荐的7个自助建站工具
  • 精通 Eclipse V3.4,第 3 部分: JDT 文本编辑器提示和技巧
  • INFORMIX 11.7 软件安装配置详细解释
  • 电驴搜索服务器正在连接,电驴emule eD2k 不能连接服务器解决办法
  • 系统大玩家Ghost 2000 Pro SP4/2K 装机版光盘 By:深度空间
  • scratch live 2.5 mac版_来了来了,它终于来了,Mac版迅雷!
  • 网站建设中需要注意哪些安全问题?
  • FBI变态测试题,猜中一半的,赶紧去看看心理医生哦
  • 【linux僵尸进程查看与删除】
  • FCKEditor配置及功能实现详解
  • MyEclipse-6.5注册码生成器源码
  • 软件下载地址900款正版
  • Nop平台中的模块依赖关系
  • User-Agent大全
  • 很好的网站,你懂的,不喜勿喷