最近玩QQ宠物,他总是心情低落,让我很不爽,让他玩耍吧,还得自己点鼠标,所以想偷个懒,试试能不能编个程序让电脑帮我做这个事情。

  要干这件事就得先找一个游戏开刀,刚开始我找的是弹力球游戏,不就是点鼠标么,以前我发现这个游戏有个bug点,就是在宠物抛球的出手点那里,只要一直点就可以保证球不会掉到地上去,所以写了一个简单的鼠标钩子程序,刚开始运行得好好的,能够实现我要的结果,但是后来不知道怎么回事,怎么改怎么不工作,让我很不爽,一气之下,咱不玩了!所以选择了吹泡泡,发现貌似吹泡泡更简单~~~~呵呵。做如下分析:

  这个游戏主要也是点鼠标,只要在小企鹅吹出来的泡泡上点鼠标就可以得一分,每五分就可以增加心情,有时还能增加元宝呢。所以,不就是点鼠标么~~~我首先想到的也是鼠标钩子。

  到网上下载了一个查看鼠标所指的窗口的名称的小程序,查到小企鹅吹出的泡泡其实每个泡泡就是一个新的窗口,名字以XXX,bubble**命名,其中,XXX带包难度,前10个泡泡对应的是简单,即XXX为simple,11到31个为中等,即XXX为center,后面的为难,即difficult,我试了100多个,再后面还有没有区分就不知道了,知道的读者麻烦告诉我一下。

  既然泡泡是一个窗口,而且只要点击了这个窗口就会得一分,那我只要获取到窗口的名字,再通过名字找到句柄,通过窗口句柄而给窗口发送点击的消息,这不就完成任务了么?这就开始了:

  我是直接在我下载的那个查看窗口的基础上改的,他原来就有鼠标钩子,所以我只需要在鼠标钩子函数里面加上如下代码即可:


HWND wnd;
CString name;
for (int i=0;i<300;i++)//一共设置了300个泡泡,估计够用了,不够的话自己改吧
{//这个for循环就是用来给窗口设置名字,以便查找窗口
if (i<11)
{
name.Format("simple,bubble%d",i);
}
else if (i<32)
{
name.Format("center,bubble%d",i);
}
else if (1)
{
name.Format("difficult,bubble%d",i);
} wnd = ::FindWindow(NULL,name);//开始查找窗口 if (wnd&&flag==0)//如果找到窗口,这个flag没用,删了即可
{
::SetWindowPos(wnd,NULL,400,400,100,100,SWP_NOSIZE);//把所有的泡泡都吸到一个点去
::SetWindowPos(wnd,NULL,400,400,100,100,SWP_NOMOVE);//让泡泡不准再移动
::SendMessage(wnd,WM_LBUTTONDBLCLK,MK_LBUTTON,MAKELONG(22,22));//发送鼠标点击消息
wnd = NULL;//这句没用
}
} HWND wnd;
CString name;
for (int i=0;i<300;i++)//一共设置了300个泡泡,估计够用了,不够的话自己改吧
{//这个for循环就是用来给窗口设置名字,以便查找窗口
if (i<11)
{
name.Format("simple,bubble%d",i);
}
else if (i<32)
{
name.Format("center,bubble%d",i);
}
else if (1)
{
name.Format("difficult,bubble%d",i);
} wnd = ::FindWindow(NULL,name);//开始查找窗口 if (wnd&&flag==0)//如果找到窗口,这个flag没用,删了即可
{
::SetWindowPos(wnd,NULL,400,400,100,100,SWP_NOSIZE);//把所有的泡泡都吸到一个点去
::SetWindowPos(wnd,NULL,400,400,100,100,SWP_NOMOVE);//让泡泡不准再移动
::SendMessage(wnd,WM_LBUTTONDBLCLK,MK_LBUTTON,MAKELONG(22,22));//发送鼠标点击消息
wnd = NULL;//这句没用
}
}

QQ宠物吹泡泡游戏小助手 VC++6.0代码分析的更多相关文章

  1. 【程序员小助手】Emacs,最强编辑器,没有之一

    内容简介 1.Emacs简介 2.Emacs三个平台的安装与配置 3.自动补全插件 4.小编的Emacs配置文件 5.常用快捷方式 6.和版本控制系统的配合(以SVN为例) [程序员小助手]系列 在这 ...

  2. Windows版词汇小助手V3.0发布了

    欢迎使用词汇小助手 作者:IT小小龙 电子邮箱:long_python@126.com 个人博客:http://blog.sina.com.cn/buduanqs 一款跨平台词汇查询记忆学习软件. 已 ...

  3. 词汇小助手V3.0发布了——不只是一个查单词的软件

    欢迎使用词汇小助手 作者:IT小小龙 电子邮箱:long_python@126.com 个人博客:http://blog.sina.com.cn/buduanqs 一款跨平台词汇查询记忆学习软件. 已 ...

  4. 【程序员小助手】Synergy,感受穿越屏幕之美

    内容简介 1.Synergy简介 2.Synergy安装与配置 3.附录 [程序员小助手]系列 在这个系列文章中(不定期更新),小编会把这些年(也没几年)的编程学习和工作中使用到的个人感觉非常好的软件 ...

  5. 【mac微信小助手】WeChatPlugin使用教程!

    微信小助手 mac版集微信防撤回和微信多开等诸多功能于一身,可以有效的阻止朋友微信撤回消息,还能开启无手机验证登录,再也不用每次登录扫码验证啦,非常方便!   wechatplugin mac版安装教 ...

  6. 基于 Serverless +企业微信打造 nCoV 疫情监控小助手

    最近的一些疫情信息很让人揪心,为了方便大家掌握疫情信息,在空闲之余做了一个关于 nCoV 的疫情监控小助手.主要的功能是通过企业微信的 WebHook 来推送疫情信息.这里将使用 Serverless ...

  7. 发布代码小助手V2.1发布了——Code2HTML工具

    设计起源: 新浪博客似乎没有插入代码的功能,所以不得不用打空格的方法格式化代码.而且没法显示行号. 描述: 发布代码小助手用python和Tkinter开发,可以在任何常见操作系统上运行.主要用于在不 ...

  8. 书签小助手V1.1发布了

    更新信息: 1.修改了部分BUG;2.添加了一些不错的网站:3.重新设计了添加书签和编辑书签的界面. 安装说明: 类Ubuntu系统: 1.安装Python3解释器和Python3-tk sudo a ...

  9. 环境监测小助手V1.1的Windows版

    环境监测小助手V1.1——可以实时查看空气质量和城市排名 一款跨平台空气质量监测软件 数据来源互联网,请联网使用. 暂不支持效果预览. 下载地址:http://files.cnblogs.com/py ...

随机推荐

  1. WSGI是一种编程接口,而uwsgi是一种传输协议

    http://uwsgi-docs.readthedocs.io/en/latest/Nginx.html http://sunxiunan.com/?p=1778 cgi---------fastc ...

  2. BeagleBone Black Linux驱动程序开发入门(0): 开发环境

    搭建arm-linux交叉编译环境的教程有很多,这里只作简要说明.Host宿主机是Ubuntu10.04,我把它装在Windows XP的VirtualBox虚拟机中,这样相当于一台主机有两个操作系统 ...

  3. 认识CoreData-基础使用

    第一篇文章中并没有讲CoreData的具体用法,只是对CoreData做了一个详细的介绍,算是一个开始和总结吧. 这篇文章中会主要讲CoreData的基础使用,以及在使用中需要注意的一些细节.因为文章 ...

  4. Android(java)学习笔记151: SurfaceView使用

    1.SurfaceView简介       在一般的情况下,应用程序的View都是在相同的GUI线程(UI主线程)中绘制的.这个主应用程序线程同时也用来处理所有的用户交互(例如,按钮单击或者文本输入) ...

  5. 安卓SQLite数据库操作,半小时开发新闻管理系统,纯干货

    本教程致力于可以快速的学习安卓软件开发,希望能通过一系列自己手写的教程,帮助正在学习或想要学习安卓开发的同仁. 本教程由今日头条-全栈攻城狮号首发,都是一个字一个字码的.请尊重劳动成果,转载请注明出处 ...

  6. Timestamp的作用及与字符串的相互转换 .

    一.Timestamp的介绍 每一个数据库都有一个计数器,这个计数器记录着数据行的插入.更新行为.如果我们为一个表中增加 timestamp 列,那么,该列将记录每一个数据行的计数器值.假如数据库中当 ...

  7. iOS开发——常用字符串string相关方法和处理

    (持续更新中……) 1,四舍五入 2,剔除字符 3,拼接字符 4,字符个数和长度 5,字符串的比较 6,字符串的范围 7,字符串转Number类型

  8. Multiple methods named 'status' found with mismatched result, parameter type or attributes

    出现这个这个错误, 有可能是由于你直接通过一个数组的索引获取一个对象(或模型)然后直接调用这个对象(或模型)的某个方法 例如: NSString *status = [self.models[inde ...

  9. Implicit conversion from enumeration type 'enum CGImageAlphaInfo' to different enumeration type 'CGB

    Implicit conversion from enumeration type 'enum CGImageAlphaInfo' to different enumeration type 'CGB ...

  10. mysql 根据某个字段将多条记录的某个字段拼接成一个字段

    未合并情况 SELECT a.id, b.name AS "role" FROM sys_user a INNER JOIN sys_user_role c ON a.id=c.u ...