zoukankan      html  css  js  c++  java
  • QQ宠物吹泡泡游戏小助手 VC++6.0代码分析

    最近玩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;//这句没用
    }
    }
    复制代码
    复制代码
  • 相关阅读:
    华为:证实已开发出自主操作系统
    Aseprite入门:第一个gif动图
    《亿级用户下的新浪微博平台架构》阅读笔记
    Aseprite入门教程
    “华为起诉美国”事件进展:美国联邦法院给美国政府发传票
    CoCos2dx开发:中文乱码
    谈谈对“华为向美国联邦法院起诉美国”的看法
    《支付宝和蚂蚁花呗的技术架构及实践》阅读笔记
    Cocos2d-x环境配置步骤
    《菜鸟弹性调度系统的架构设计》阅读笔记
  • 原文地址:https://www.cnblogs.com/flish/p/4834971.html
Copyright © 2011-2022 走看看