现有一程序 a.exe
1.
用FindWindow无法找到其主窗口句柄,但 spy++可以里可以看到其句柄。难道说 spy++里不是用这个API来获取的?不会吧!或者是a.exe做了其它的什么手脚使我无法用findwindow来获取它的句柄。(注,我调用时传的参数正确,并且getlasserror显示已经成功执行了)2.
我用其它方法终于获取到它的句柄了,并且与 spy++里的一致,但是无法用GetDC获取到它窗口的DC,怎么办? 注,它的窗口不接收任何消息? 怎么办?

解决方案 »

  1.   

    老实说,我在写一个游戏外挂。
    我不想修改游戏内存数据,也不打算截包分析。打算模拟输入。
    thank u.
      

  2.   

    spy++是用了WindowFromPoint来获得窗口句柄的,你可以试下用EnumWindows,不过也不一定行
      

  3.   

    EnumWindows也不行的,不知道它怎么实现对这些API进行屏蔽的。
    我是这样获取它的句柄的,a.exe->PID->handle。 虽然获取到它的窗口句柄了,但是感觉意义不是太大,目前只能获取它在桌面上的位置等信息,无法获取它的DC,也就意味着不好直接获取它的画面。万不得已得保证它在z-order最前面时获取屏幕BMP后提取出它窗口的BMP了。晕,太影响用户使用了,还要保持窗口在最上面。求更好的方法。
      

  4.   

    我要分析界面元素来模拟输入不同的按键(界面里没有任何按钮,全面是dx9画上去的)。
    另外,窗口已经屏蔽了FindWindow,EnumWindow,游戏设计者会傻到能对它发消息吗!
      

  5.   

    dx9和DC没关系吧,都不是一个通道上的。
      

  6.   

    直接说了吧,我在写QQ炫舞的外挂。
    我分析,它界面是画上去的。并且不能对它主窗口 postmessage 等。或许任何与它窗口句柄相关的API都是用不上的。。
    我要是想获取到它的界面元素,必须先得到它的界面位图吧,然后我用算法来判断该keydown对应的方向键。
      

  7.   

    任何时候HDC都不能跨进程传递,仅注入一途可解决