我HOOK了 魔兽争霸的窗口过程SetWindowLong(hWnd,GWL_WNDPROC,(LONG)MyWndProc);  测试HOOK成功
if(Message == WM_MOUSEMOVE)
{ return 0;}发现无法组织鼠标移动  然后我在自己的窗口过程MyWndProc中直接return 0;  发现大部分操作都被组织了  包括鼠标点击,但是鼠标移动还是无法阻止 这是为什么

解决方案 »

  1.   

    SetWindowLong成功了吗?GWL_WNDPROC
    Sets a new address for the window procedure.Windows NT/2000/XP: You cannot change this attribute if the window does not belong to the same process as the calling thread.
      

  2.   

    成功了啊   除了鼠标移动 其他都可以截取修改阻止  我是注入进去HOOK的
      

  3.   

    你把所有窗口都HOOK了么?The WM_MOUSEMOVE message is posted to a window when the cursor moves. If the mouse is not captured, the message is posted to the window that contains the cursor. Otherwise, the message is posted to the window that has captured the mouse.
      

  4.   

    魔兽争霸只有一个窗口
    测试发现,WM_MOUSEMOVE 消息也HOOK 成功了   但是 鼠标指针却无法阻止, HOOK了 WM_MOUSEMOVE 鼠标实际上是无法移动了,比如原来鼠标在按钮上,现在怎么移动都不会离开按钮,但是鼠标光标却可以随意走,奇怪
      

  5.   

    我就觉得他非常搞笑, 我HOOK了他的窗口过程直接返回  他还能在游戏中画出光标的移动动画  结果我看到的就是2个鼠标光标,一个是系统的样子,一个是游戏中的样子
      

  6.   

    得到鼠标移动的消息不仅仅有WM_MOUSEMOVE,raw input什么的也可以
      

  7.   

    你这个思路不对啊。看你的描述和下面的回帖,你是想让鼠标指针静止是吧?鼠标指针是系统共享的资源,你阻止了wm_mousemove只是能够让某个窗口不响应了这个消息,但是鼠标指针本身并不属于这个窗口,你要是想让它在你的窗口里面静止的话,可以在mousemove的时候使用SetCursorPos(point). point 不变就是了,要么就是像楼上的所说,直接对raw input操作。 这个稍微麻烦点。
      

  8.   

    我可是将所有的窗口消息都阻止了  WM_XXX 当然也包括WM_INPUT MSG_GETRIUFFER
    鼠标移动到窗口中,鼠标图标一样会跟着变
      

  9.   

    还有direct input,这个不需要窗口就能得到鼠标移动的信号
    如果它循环使用GetCursorPos得到指针位置你也没办法
      

  10.   

    还有就是用SetWindowsHookEx WH_MOUSE_LL获得鼠标移动的信号,这个也不需要窗口,总之方法多得很
      

  11.   

    SetWindowLong到底成功没,它后面可能恢复了的