SendMessage(Ghwnd, WM_MOUSEMOVE,MK_LBUTTON,MAKELPARAM(370,300));
  sleep(500);
  SendMessage(Ghwnd, WM_LBUTTONDOWN,MK_LBUTTON,MAKELONG(370,300));
  sleep(500);
上面的两句代码,我测试的时候,第一句可以运行,鼠标可以移动到我要的位置
为什么第二个运行不了,不能实现点击的效果..我需要在一款游戏中模拟鼠标操作,希望是可以在后面进行..

解决方案 »

  1.   

    还要发个松开鼠标左键的消息
    SendMessage(Ghwnd, WM_LBUTTONUP,MK_LBUTTON,MAKELONG(370,300));
      

  2.   


    应该是这个问题,我昨天给一个button发点击消息,就因为没发WM_LBUTTONUP而实现不了,在WM_LBUTTONDOWN后面是要跟一个WM_LBUTTONUP
      

  3.   

    POSTMESSAGE 在后台就能点... 应该用POSTMESSAGE外挂都这么干的
      

  4.   

    应该跟是否发送鼠标抬起无关,因为鼠标移动本身就没有鼠标按下的动作。
    sendmessage和postmessage的区别
    前者,等待目标程序响应结束才返回你的程序继续执行,
    后者发送后,不等待目标程序是否响应以及响应是否结束SendMessage(Ghwnd, WM_MOUSEMOVE,MK_LBUTTON,MAKELPARAM(370,300));
      sleep(500);
      SendMessage(Ghwnd, WM_LBUTTONDOWN,MK_LBUTTON,MAKELONG(370,300));
      sleep(500);看你的意思,好像是说先移动到370,300点,然后在该位置点击一次鼠标。
    SendMessage(Ghwnd, WM_MOUSEMOVE,MK_LBUTTON,MAKELPARAM(370,300));
      sleep(500);
    PostMessage(Ghwnd, BM_CLICK, 0, 1);
    这样试试。
    或者
    SendMessage(Ghwnd, WM_MOUSEMOVE,MK_LBUTTON,MAKELPARAM(370,300));
      sleep(500);
    PostMessage(Ghwnd, WM_LBUTTONDOWN, 0, 1);
    PostMessage(Ghwnd, WM_LBUTTONUP, 0, 1);
      

  5.   

    给按钮发送消息,直接用按钮自带的API消息
    BM_CLICKED,用不着发送鼠标按下,鼠标弹起的消息对。
      

  6.   

    可能SendMessage被Ghwnd主窗体挂钩了。
      

  7.   

    postmessage 和sendmessage 这两个函数调用方式完全一样,只是返回值不一样
    有点意思,等待最终答案,