发送编辑好的鼠标消息到一个后台运行的IE窗口上,不能把窗口设置到前台,为了不影响别的工作。所以用mouse_event好像不行。还有什么方式可以实现? 

解决方案 »

  1.   

    mouse_event单纯控制鼠标在屏幕上的活动,似乎对后台窗口起不了作用,试试 SendMessage呢?
      

  2.   

    我这情况用PostMessage比较好,不需要返回结果。有没有具体的例子,或是SendMessage/PostMessage这两个API有关鼠标参数使用的详细介绍?我找不到有关的资料啊,哪位大侠有手册之类最好了
      

  3.   

    使用PostMessage.Private Function SendClick(hwnd As Long, mX As Long, mY As Long)
        '发送点击消息
        Dim I As Long
        
        I = PostMessage(hwnd, WM_LBUTTONDOWN, 0, (mX And &HFFFF) + (mY And &HFFFF) * &H10000)
        I = PostMessage(hwnd, WM_LBUTTONUP, 0, (mX And &HFFFF) + (mY And &HFFFF) * &H10000)
    End Function调用SendClick,指定句柄,及相对坐标就可以了.
      

  4.   

    使用钩子   
     SetWindowsHookEx 
      在发送消息什么的
      

  5.   

    首先取得目标窗体句柄,用API:FindWindowEx
    然后用SendMessage或者PostMessage向那个窗口发送消息。鼠标相关的消息有WM_LBUTTONDOWN,WM_LBUTTONUP,WM_RBUTTON.......,WM_MOUSEMOVE等等,对应这些消息的LParam,WParam具体要求是什么,直接去看看MSDN
      

  6.   

    比如: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.A window receives this message through its WindowProc function. 
    SyntaxWM_MOUSEMOVE    WPARAM wParam
        LPARAM lParam;
        
    ParameterswParam
    Indicates whether various virtual keys are down. This parameter can be one or more of the following values. 
    MK_CONTROL
    The CTRL key is down.
    MK_LBUTTON
    The left mouse button is down.
    MK_MBUTTON
    The middle mouse button is down.
    MK_RBUTTON
    The right mouse button is down.
    MK_SHIFT
    The SHIFT key is down.
    MK_XBUTTON1
    Windows 2000/XP: The first X button is down.
    MK_XBUTTON2
    Windows 2000/XP: The second X button is down.
    lParam
    The low-order word specifies the x-coordinate of the cursor. The coordinate is relative to the upper-left corner of the client area. The high-order word specifies the y-coordinate of the cursor. The coordinate is relative to the upper-left corner of the client area. 
    Return ValueIf an application processes this message, it should return zero. 
    ResUse the following code to obtain the horizontal and vertical position:xPos = GET_X_LPARAM(lParam); 
    yPos = GET_Y_LPARAM(lParam); You can also use the MAKEPOINTS macro to convert the lParam parameter to a POINTS structure. 
      

  7.   

    模拟鼠标点击事件,看一看这里面的VB代码:
    http://topic.csdn.net/t/20041021/20/3479192.html