ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long里面 bvk 和bscan具体的参数(键盘码常数)有哪些?

解决方案 »

  1.   

    '附上老外的例程一段,自己研究吧,很简单的....   :)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
      

  2.   

    keybd_event函数我只用过一次,是模拟printscreen按键时用的,我具体用法是:申明api 
    Public Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
    Public Const theScreen = 1
    Public Const theForm = 0
    然后,
        Call keybd_event(vbKeySnapshot, theScreen, 0, 0)  ' 截取当前窗体所在屏幕图像
        Call keybd_event(vbKeySnapshot, theform, 0, 0)  ' 截取当前屏幕图像
    这是我从vb爱好者上学的,你也可以去看看
    http://www.sijiqing.com/vbgood/experience/index.asp?action=read&id=3313
    希望能对你有所帮助!