当窗口在最前面时,用mousemove或者sendmessage可以模拟鼠标输入 
但是当窗口最小化了时应该用什么来模拟鼠标输入呢
反正程序最终是调用一个函数,我想可不可以想办法调用这个函数,或者触发这个函数呢??

解决方案 »

  1.   

    第一步,获得该窗口句柄,
           HWND hWnd = (HWND)FindWindow(NULL,LPCTSTR strCaption);
    第二步,SetCursorPos(x,y);
    第三步,SendMessage(hWnd,WM_LBUTTON_DOWN,x,y);
      

  2.   

    HWND hWnd = (HWND)FindWindow(NULL,LPCTSTR strCaption);
    SendMessage(hWnd,WM_LBUTTON_DOWN,x,y);
      

  3.   

    用sendmessage时,窗口没有焦点时行,但最小化就不行了
      

  4.   

    那颗能是最小化的时候你的程序已经不接受mousemove消息了吧!?你用钩子试试
      

  5.   

    SendInput就可以搞定,游戏中一般都是这样用的。
      

  6.   

    INPUT input;
    input.type=INPUT_MOUSE;
    input.mi.dx=0;
    input.mi.dy=0;
    input.mi.mouseData=0;
    input.mi.dwFlags=MOUSEEVENTF_LEFTDOWN;
    input.mi.time=0;
    input.mi.dwExtraInfo=(ULONG_PTR ) GetMessageExtraInfo ();
    ::SendInput(1,&input,sizeof(INPUT));
      

  7.   

    INPUT input;
    input.type=INPUT_MOUSE;
    input.mi.dx=0;
    input.mi.dy=0;
    input.mi.mouseData=0;
    input.mi.dwFlags=MOUSEEVENTF_LEFTDOWN;
    input.mi.time=0;
    input.mi.dwExtraInfo=(ULONG_PTR ) GetMessageExtraInfo ();
    ::SendInput(1,&input,sizeof(INPUT));
      

  8.   

    谢谢水银,但窗口被最小化了,SendInput是不是只对使用DI的窗口起作用?