mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);这样的代码结果怎么只是单击,那么怎样实现双击呢????

解决方案 »

  1.   

    我编过一个程序,用的就是以下的代码,能用的::SetCursorPos((int)ptMouse->x,(int)ptMouse->y);
    ::mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
    ::mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0); ::mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
    ::mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
      

  2.   

    我试了一下会产生双击
    http://my.6to23.com/cigarette/qd2.zip
      

  3.   

    速度太快,每个单击之间必须留有时间间隔才叫双击,因此可以这样
    mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
    mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
    sleep(100);
    mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
    mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
      

  4.   

    ::mouse_event(MOUSEEVENTF_LEFTDOWN, | MOUSEEVENTF_LEFTUP,0,0,0,0);
    ::mouse_event(MOUSEEVENTF_LEFTDOWN, | MOUSEEVENTF_LEFTUP,0,0,0,0);
    效果就是双击
      

  5.   

    bcpl(林平之)给我的程序确实可以实现双击,可是我的程序想在别的程序里模拟双击却不成功
    可能是他的程序消息处理有什么不同?疑惑中,继续试
      

  6.   

    我试过中间加sleep(1)也没双击效果
      

  7.   

    代码应该没有问题啊,所以你是怎么知道没有双击效果的?是不是游戏?有些游戏中的鼠标程序根本不用windows消息机制,或者用了,却转化成符合自己要求的鼠标,比如某些游戏会把系统鼠标索定在一个范围,并且只响应鼠标移动消息和按钮事件,通过自己的算法来实现自己的鼠标移动,所以
    ::mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
    ::mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0); ::mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
    ::mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
    肯定失败