就是说在打游戏的过程中,弹出自己写的程序中的窗体,可以对该窗体进行操作(拖放,输入等),前提是游戏不能终止,游戏在窗体的下面显示并且继续更新着游戏画面。看过有人问过类似金山游侠的游戏弹出窗口,但是和那个有点不同的是,金山游侠把游戏停止了,停止了游戏画面的更新(我在魔兽争霸中测试过)。看了以前的帖子,也有人提过关于这方面的问题!但是经过我测试好象都没有效果,有人用HOOK的,窗体是弹出来了,但是游戏界面和弹出来的窗口都似乎死掉了,不响应任何消息。而最进用DirectDraw,对于那种静止的画面,倒确实是可以随便拖放和输入,但是只要画面在更新变换成,弹出的窗体就被遮挡了,但是鼠标却还是可以显示成窗体上的鼠标的(测试都在魔兽争霸 冰封王座中进行)。另附加一个问题:
   喜欢上浩方的人,并且喜欢打魔兽的都应该知道现在的浩方的一个新特性吧!就是魔兽每打完一局,在下次开局的时候
就会在魔兽的界面上显示上一局的对战时间等记录!这个是如何实现的呢?我想应该有和上面那个问题类似的一些技术特性存在着吧!所以提一下!
  
  期待各位大牛牛来帮我解答啊!感激不尽。(目前只能给到200分,搞定了再散吧!)

解决方案 »

  1.   

    附上一个帖子:
    http://topic.csdn.net/t/20010909/11/278910.html
    共资料参考
      

  2.   

    我估计第二个问题没有太大的技术含量,应该就是用了一个计时器,打完了就把事件记录下来,然后用Direct重绘到窗体上?也有可能是自己建立了一个透明的窗口,只显示时间等因素,至于你的第一个问题,不知道为什么我总是会想到外挂……
    外挂的代码可能有这方面的东西吧
      

  3.   


    那和第一个类似啊 !
    如果是透明窗体的话,想想,他那个窗体也是弹出在魔兽的窗体上面而没有影响游戏的性质.定时器方面,第一个问题,就用了定时器在那里不断的翻转原窗体的界面信息到direct的剪裁区域!但是对于魔兽这样画面不断刷新的,就不行,还是被覆盖下去了.这个不是外挂,只是游戏当中需要的一个辅助工具
      

  4.   

    这种是不是自己花一个Form在MainForm里啊?
      

  5.   

    使用Hook成功进入了DirectDraw的内部函数!但是目前发现,DirectDraw只能针对2D平面游戏,而现在的游戏都基本上没有2D了
    使用Hook实在复杂麻烦!魔兽是OpenGl的,其他好多都是D3D的。郁闷啊!再次等待高手来。
      

  6.   

    魔兽好像默认不是OpenGL的吧?
      

  7.   

    不知道是不是,我看了一下魔兽中的导入函数库
    没见到DirectX的动态库,到是有OPENGL的动态库被引入,所以就认为是OPENGL的了
      

  8.   

    上网看了下,魔兽是可以通过OPENGL来运行的,但这不是默认的运行方式,要打开OPENGL还需要额外做些操作
      

  9.   

    唉!现在咋搞呢!莫非让此贴永远的下沉下去?
    如果用Hook加覆盖模式不断的裁剪覆盖的话,倒是可以实现!但是要针对各种引擎!而且实现过程比较麻烦.