mouse_event无效的有关问题,版主们帮忙看看

mouse_event无效的问题,版主们帮忙看看啊
有一个贱贱的程序,我现在要调用它:

hMain = ::FindWindow(NULL,L"有信");
::SetWindowPos(hMain, HWND_TOPMOST, 0, 0, 0, 0,SWP_NOMOVE|SWP_NOSIZE|SWP_FRAMECHANGED); 
        //使窗口置顶并获取焦点  测试上一句对它无效 下面这一段才激活窗口
typedef void (WINAPI *PSWITCHTOTHISWINDOW) (HWND,BOOL);
PSWITCHTOTHISWINDOW SwitchToThisWindow;
HMODULE hUser32=GetModuleHandle(_T("user32"));
SwitchToThisWindow=(PSWITCHTOTHISWINDOW)GetProcAddress(hUser32,"SwitchToThisWindow");
SwitchToThisWindow(hMain,TRUE);
       
CRect rc;
CWnd* pParent = CWnd::FromHandle(hMain);
pParent->GetWindowRect(&rc);
        //设置按钮位置并点击 但程序并无反应 keybd_event发送到编辑框也无反应
SetCursorPos(rc.left + 430, rc.top + 135);// 505 235
mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);


另PostMessage神马的都弱爆了,根本对它不起作用,请问对这个蠢货还有其它绝招或思路么?
postmessage mouse_event 模拟程序点击

------解决方案--------------------
看看有没有这个函数:::mouse_event,就上前面加::,这表明是API的函数,不是MFC封装过的,如果有这个函数,这个函数的第一个参数应该就是窗口句柄,也就是把消息发送到这个句柄指定的窗口
------解决方案--------------------
确定坐标没有问题?

------解决方案--------------------
Note  This function has been superseded. Use SendInput instead.
------解决方案--------------------
兄弟,你又开贴了?
我还以为你解决了呢。实在不行,虚拟鼠标能接受不?
要写驱动。完全与硬件鼠标操作一致。
------解决方案--------------------
typedef struct tagMOUSEINPUT {
  LONG      dx;
  LONG      dy;
  DWORD     mouseData;
  DWORD     dwFlags;
  DWORD     time;
  ULONG_PTR dwExtraInfo;
} MOUSEINPUT, *PMOUSEIN

typedef struct tagINPUT {
  DWORD type;
  union {
    MOUSEINPUT    mi;
    KEYBDINPUT    ki;
    HARDWAREINPUT hi;
  };
} INPUT, *PINPUT;

input结构中的mouse结构里面有
dx dy就是!
------解决方案--------------------
先找个别的程序测试一下你的代码,不过感觉
mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
这两句是没有问题的。
------解决方案--------------------
你是不是焦点没设置在那个程序上面才导致失效的?
------解决方案--------------------
HWND hWnd = ::FindWindow(NULL, _T("BBB"));
if(NULL == hWnd)
{
return ;
}
if(::IsIconic(hWnd))
{
::ShowWindow(hWnd, SW_RESTORE);
}
::BringWindowToTop(hWnd);
::SetWindowPos(hWnd, HWND_TOP, 0, 0, 0, 0, SWP_NOMOVE 
------解决方案--------------------
 SWP_NOSIZE);
HWND hButton = ::FindWindowEx(hWnd, NULL, _T("Button"), _T("Cancel"));