最近玩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. 你知道用AngularJs怎么定义指令吗?

    前言 最近学习了下angularjs指令的相关知识,也参考了前人的一些文章,在此总结下. 欢迎批评指出错误的地方.   Angularjs指令定义的API AngularJs的指令定义大致如下 ang ...

  2. 【转】coco2d-x 纹理研究

    1.通常情况下用PVR格式的文件来进行图片显示的时候,在运行速度和内存消耗方面都要比PNG格式要快和小.一般情况下PVR消耗的内存比PNG消耗的内存小25%左右.PVR格式可以用ZWoptex导出.P ...

  3. 如何在 Objective-C 的环境下实现 defer

    关注仓库,及时获得更新:https://github.com/draveness/iOS-Source-Code-Analyze Follow: https://github.com/Dravenes ...

  4. 考试必备神器-真题园手机客户端Android版1.1正式上线啦,欢迎大家下载使用!

    真题园-考试必备神器,爱学习,找真题! 真题园-考试必备神器,爱学习,找真题!1.真题园android客户端1.1版全新发布上线.2.最新教育资讯实时更新,了解行业动态新闻.3.最新最全的真题大全,最 ...

  5. 快速安装VIM开发环境

    *Mac上当前用户的.vim目录打包*:附件地址:http://pan.baidu.com/s/1sj5FjZJ 1. 备份好系统的原来的vim配置文件,以备恢复使用:         mv ~/.v ...

  6. sql快速生成大量数据

    先插入一条数据 insert into table(a,b,c,d) values(1,2,3,4) 然后重复执行以下sql语句 没执行一次 数据就会倍增 insert into table(a,b, ...

  7. VOL.2 IE6,7,8(windows vista/7 x86/x64 )单文件版三连发,欢迎大家分享

    在上期 VOL.1 利用vmware ThinApp 制作非XP下可以运行的IE6 [无插件版](windows vista/7/8  x86/x64 )中,简要介绍了如何利用vmware Thina ...

  8. SQL语句修改表

    -- 更改字段类型 默认值 alter table 表名 alter column 字段名 类型 ALTER TABLE 表名 add DEFAULT ('修改后的默认值') for 字段名 WITH ...

  9. jQuery 基础

    慕课网 2016-01-07 每一次操作select的时候,总是要出来翻一下资料,不如自己总结一下,以后就翻这里了. 比如<select class="selector"&g ...

  10. Java 链式编程

    这里来做一个Java 链式编程的例子,基本就是每次返回一个对象本身,这样就能够去调用对象的方法和属性. package com.sun; public class Demo05 { /** * @pa ...