由于本人不清楚SendInput、Keybd_event的详细用法,希望各位指定以及给个代码例子
还有是否可以利用mouse_event移动到绝对坐标点?如果可以麻烦给出代码例子

解决方案 »

  1.   

    1、keybd_event 
    VB声明 
    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) 
    说明 
    这个函数模拟了键盘行动 
    参数表 
    参数 类型及说明 
    bVk Byte,欲模拟的虚拟键码 
    bScan Byte,键的OEM扫描码 
    dwFlags Long,零;或设为下述两个标志之一 
    KEYEVENTF_EXTENDEDKEY 指出是一个扩展键,而且在前面冠以0xE0代码 
    KEYEVENTF_KEYUP 模拟松开一个键 
    dwExtraInfo Long,通常不用的一个值。api函数GetMessageExtraInfo可取得这个值。允许使用的值取决于特定的驱动程序 
    注解 
    这个函数支持屏幕捕获(截图)。在win95和nt4.0下这个函数的行为不同 2、mouse_event
    【VB声明】 
    Private 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) 【说明】 
    模拟一次鼠标事件 【备注】 
    进行相对运动的时候,由SystemParametersInfo函数规定的系统鼠标轨迹速度会应用于鼠标运行的速度 【参数表】 
    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 ------------- Long,根据是否指定了MOUSEEVENTF_ABSOLUTE标志,指定垂直方向的绝对位置或相对运动 cButtons ------- Long,未使用 dwExtraInfo ---- Long,通常未用的一个值。用GetMessageExtraInfo函数可取得这个值。可用的值取决于特定的驱动程序
      

  2.   

    这些MSDN里面都有
    有代码例子吗?比如写一段代码键盘事件如何输入一个字符“A”,
    鼠标事件写一段代码如何移动到绝对坐标300,300
      

  3.   

    Public Const KEYEVENTF_KEYUP = &H2
    Public Const VK_SPACE = &H20keybd_event VK_SPACE, 0, 0, 0    '空格按下
    keybd_event VK_SPACE, 0, KEYEVENTF_KEYUP, 0 '空格弹起下面是鼠标的,你自已试一下吧
    如果鼠标被移动,用设置MOUSEEVENTF_MOVE来表明,dX和dy保留移动的信息。给出的信息是绝对或相对整数值。
        如果指定了MOWSEEVENTF_ABSOLOTE值,则dX和dy含有标准化的绝对坐标,其值在0到65535之间。事件程序将此坐标映射到显示表面。坐标(0,0)映射到显示表面的左上角,(6553,65535)映射到右下角。
        如果没指定MOWSEEVENTF_ABSOLOTE,dX和dy表示相对于上次鼠标事件产生的位置(即上次报告的位置)的移动。正值表示鼠标向右(或下)移动;负值表示鼠标向左(或上)移动。
        鼠标的相对移动服从鼠标速度和加速度等级的设置,一个最终用户用鼠标控制面板应用程序来设置这些值,应用程序用函数SystemParameterslnfo来取得和设置这些值。
        在应用加速时系统对指定相对鼠标移动提供了两个测试。如果指定的沿X轴y轴的距离比第一个鼠标阈值大,并且鼠标的加速等级非零,则操作系统将距离加倍。如果指定的沿X轴或y轴的距离比第二个鼠标阈值大,并且鼠标的加速等级为2,则操作系统将从第一个阈测试得来的距离加倍。这样就允许操作系统将指定鼠标沿X轴或y轴的相对位移加到4倍。
        一旦应用了加速,系统用期望的鼠标速度换算合成的值。鼠标速度的范围是从1(最慢)到20(最快),并代表基于鼠标移动的距离指示符移动的数量。缺省值是10,表示对鼠标的移动设有附加的修改。
        函数mouse_event需要用的应用程序用来合成鼠标事件。也被应用程序用来取得鼠标位置和鼠标按键状态之外的鼠标信息。例如,如果输入板制造商想将基于画笔的信息传给自己的应用程序,可以写一个直接与输入板硬件通信的动态键接库(DLL),获得附加的信息,并保存到一个队列中。DLL然后调用mouse_event,用标准按键和x/y位置数据,并在参数dwExtralnfo设置排列的附加信息的指针或索引。当应用程序需要附加信息时,调用DLL(连同存贮在dwEXtralnfo中的指针或索引),则DLL返回附加信息。
        Windows CE:Windows CE不支持参数 dwFlags取MOOSE EVENTF WHEEL常数。'模拟鼠标单击
    mouse_event MOUSEEVENTF_ABSOLUTE Or MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0
    mouse_event MOUSEEVENTF_ABSOLUTE Or MOUSEEVENTF_LEFTUP, 0,0, 0, 0
      进行相对运动的时候,由SystemParametersInfo函数规定的系统鼠标轨迹速度会应用于鼠标运行的速度