如何从屏幕取词?以及模拟键盘输入?

解决方案 »

  1.   

    模拟键盘输入用keybd_event函数:
    【操作系统】
    Win9X:Yes
    WinNT:Yes
    【说明】
      这个函数模拟了键盘行动 
    【返回值】
    【其它】
      这个函数支持屏幕捕获(截图)。在win95和nt4.0下这个函数的行为不同
    【参数表】
      bVk ------------  Byte,欲模拟的虚拟键码
      bScan ----------  Byte,键的OEM扫描码
      dwFlags --------  Long,零;或设为下述两个标志之一
      KEYEVENTF_EXTENDEDKEY
      指出是一个扩展键,而且在前面冠以0xE0代码
      KEYEVENTF_KEYUP
      模拟松开一个键
      dwExtraInfo ----  Long,通常不用的一个值。api函数GetMessageExtraInfo可取得这个值。允许使用的值取决于特定的驱动程序
      

  2.   

    'Example Name:keyb_event
    Const VK_H = 72
    Const VK_E = 69
    Const VK_L = 76
    Const VK_O = 79
    Const KEYEVENTF_EXTENDEDKEY = &H1
    Const KEYEVENTF_KEYUP = &H2
    Private Declare Sub keybd_event Lib "user32.dll" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
    Private Sub Form_KeyPress(KeyAscii As Integer)
        'Print the key on the form
        Me.Print Chr$(KeyAscii);
    End Sub
    Private Sub Form_Paint()
        'KPD-Team 2000
        'URL: http://www.allapi.net/
        'E-Mail: [email protected]
        'Clear the form
        Me.Cls
        keybd_event VK_H, 0, 0, 0   ' press H
        keybd_event VK_H, 0, KEYEVENTF_KEYUP, 0   ' release H
        keybd_event VK_E, 0, 0, 0  ' press E
        keybd_event VK_E, 0, KEYEVENTF_KEYUP, 0  ' release E
        keybd_event VK_L, 0, 0, 0  ' press L
        keybd_event VK_L, 0, KEYEVENTF_KEYUP, 0  ' release L
        keybd_event VK_L, 0, 0, 0  ' press L
        keybd_event VK_L, 0, KEYEVENTF_KEYUP, 0  ' release L
        keybd_event VK_O, 0, 0, 0  ' press O
        keybd_event VK_O, 0, KEYEVENTF_KEYUP, 0  ' release O
    End Sub
      

  3.   

    屏幕取词可以参考:
    http://blog.csdn.net/Modest/archive/2006/04/29/696516.aspx