模拟键盘可以使用SendKeys 语句。

解决方案 »

  1.   

    模拟一次鼠标事件Declare Sub mouse_event Lib "user32" Alias "mouse_event" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)dwFlags --------  Long,下述标志的一个组合
      MOUSEEVENTF_ABSOLUTE  dx和dy指定鼠标坐标系统中的一个绝对位置。在鼠标坐标系统中,屏幕在水平和垂直方向上均匀分割成65535×65535个单元 -  MOUSEEVENTF_MOVE
      移动鼠标
      MOUSEEVENTF_LEFTDOWN
      模拟鼠标左键按下
      MOUSEEVENTF_LEFTUP
      模拟鼠标左键抬起
      MOUSEEVENTF_RIGHTDOWN
      模拟鼠标右键按下
      MOUSEEVENTF_RIGHTUP
      模拟鼠标右键按下
      MOUSEEVENTF_MIDDLEDOWN
      模拟鼠标中键按下
      MOUSEEVENTF_MIDDLEUP
      模拟鼠标中键按下
      dx
      Long,根据是否指定了MOUSEEVENTF_ABSOLUTE标志,指定水平方向的绝对位置或相对运动  dy -------------  根据是否指定了MOUSEEVENTF_ABSOLUTE标志,指定垂直方向的绝对位置或相对运动  cButtons -------  1,2,3
      dwExtraInfo ----  通常未用的一个值。用GetMessageExtraInfo函数可取得这个值。可用的值取决于特定的驱动程序进行相对运动的时候,由SystemParametersInfo函数规定的系统鼠标轨迹速度会应用于鼠标运行的速度
      

  2.   

    模拟一次鼠标事件
    Declare Sub mouse_event Lib "user32" Alias "mouse_event" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)dwFlags --------  Long,下述标志的一个组合
      MOUSEEVENTF_ABSOLUTE  dx和dy指定鼠标坐标系统中的一个绝对位置。在鼠标坐标系统中,屏幕在水平和垂直方向上均匀分割成65535×65535个单元 -  MOUSEEVENTF_MOVE
      移动鼠标
      MOUSEEVENTF_LEFTDOWN
      模拟鼠标左键按下
      MOUSEEVENTF_LEFTUP
      模拟鼠标左键抬起
      MOUSEEVENTF_RIGHTDOWN
      模拟鼠标右键按下
      MOUSEEVENTF_RIGHTUP
      模拟鼠标右键按下
      MOUSEEVENTF_MIDDLEDOWN
      模拟鼠标中键按下
      MOUSEEVENTF_MIDDLEUP
      模拟鼠标中键按下
      dx -------------  根据是否指定了MOUSEEVENTF_ABSOLUTE标志,指定水平方向的绝对位置或相对运动  dy -------------  根据是否指定了MOUSEEVENTF_ABSOLUTE标志,指定垂直方向的绝对位置或相对运动  dwExtraInfo ----  通常未用的一个值。用GetMessageExtraInfo函数可取得这个值。可用的值取决于特定的驱动程序进行相对运动的时候,由SystemParametersInfo函数规定的系统鼠标轨迹速度会应用于鼠标运行的速度
      

  3.   

    SendKeys 模拟键盘时间Sendkeys "{F1}"
      

  4.   

    vb : Sendkey
    api : keybd_event===========================================================
    我要学好C++啊 \(-o-)/[email protected]
    ===========================================================
      

  5.   

    sendkey 需要知道窗体的名字。api产生键盘事件类似鼠标的api。Public Declare Sub keybd_event Lib "user32" Alias "keybd_event" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
      

  6.   

    关于鼠标操作,有如下两个函数可以满足。1. Winn32 API:SetMousePoint。设置鼠标位置。
    2.Winn32 API:mouse_event。执行鼠标动作(单击、双击、右击...)。调用方式也不是很复杂。我的一个通用组件就包含了这些功能。另外还有
    获取当前鼠标位置的窗口句柄、类名、标题;移动一个窗口;关闭窗口;
    设置窗口为总在前;获取当前所有正在运行的窗口句柄等等。有兴趣可以和我探讨:[email protected]
      

  7.   

    用mouse_event函数完全可以实现!
      

  8.   

    没问题,只是我现在还在整理组件的文档。刚刚整理完毕关于 WEB 类开发的
    文档(创建虚拟目录,设置目录属性等)给一个 CSDN 上的网友发过去了。估计在下个星期可以整理完你需要的部分。留下你的 Email,或者给我发邮
    件。完毕后给你发一份过去。
      

  9.   

    garycx(泡泡龍℡) 你的确实能够摸拟键盘的按下了,不知如何才能让他作用于其他的程序,或者所有打开的程序?
      

  10.   

    不能摸拟 ctrl键。要怎么样才能摸拟快捷键?
      

  11.   

    模拟了一个将鼠标移动到屏幕的(100,100)位置并模拟一个鼠标左键动作Private Declare Function SetCursorPos Lib "user32" (ByVal X As Long, ByVal Y As Long) As LongPrivate Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)Private Const MOUSEEVENTF_MOVE = &H1        '  mouse move
    Private Const MOUSEEVENTF_LEFTDOWN = &H2    '  left button down
    Private Const MOUSEEVENTF_LEFTUP = &H4      '  left button up
    Private Const MOUSEEVENTF_ABSOLUTE = &H8000 '  absolute movePrivate Sub Command1_Click()
     Dim posx, posy
     posx = 100: posy = 100
     a = SetCursorPos(posx, posy)
     mouse_event MOUSEEVENTF_ABSOLUTE Or MOUSEEVENTF_LEFTDOWN, posx, posy, 0, 0
     mouse_event MOUSEEVENTF_ABSOLUTE Or MOUSEEVENTF_LEFTUP, posx, posy, 0, 0End Sub
      

  12.   

    使用HOOK记录下来,然后执行。