在delphi中如何发送键盘消息和鼠标的消息?也就是说用语句仿真键盘和鼠标的操作。

解决方案 »

  1.   

    sendmessage(handle,wm_keydown, vk_tab,0)  tab键
    sendmessage(handle,wm_keydown,vk_return,0) return键
    鼠标:wm_lbuttondown,左键 wm_rbuttondown右键
    建议少用postmessage, 不太听话!
      

  2.   

    鼠标移动(移动量dx,dy)
    mouse_event(MOUSEEVENTF_MOVE,dx,dy,0, 0 );
    鼠标在(x,y)处按下或释放
    setcursorpos(x,y);
    mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0 );
    mouse_event(MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0 );
    mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0 );
    mouse_event(MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0 );
    鼠标双击由两次按下与释放来模拟键盘模拟一般虚拟键值(VK_)由KeyDown或keyup事件得到
    特殊键值
    Tab--9
    Shift--16
    Ctrl--17
    Alt--18
    CapsLock--20
    Esc--27
    Win--91,92
    NumLock--144
    ScrollLock--145按下键
    keybd_event(key, MapVirtualKey(key, 0 ), KEYEVENTF_KEYUP , 0 );
    释放键
    keybd_event(key, MapVirtualKey(key, 0 ), 0 , 0 );