sendkeys是发送一个按键信息,能不能让按键一直按在那儿呢?
具体打比方来说就是程序中可以使键盘上某个按键模拟处于一直按下的情况,而不是sendkeys的按一下,要等我再发送一个命令才可以使那个按钮放开。

解决方案 »

  1.   

    当然可以了,不过要用到api了:
    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_Key按下(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   ' 按下 H
        keybd_event VK_H, 0, KEYEVENTF_KEYUP, 0   ' 松开 H
        keybd_event VK_E, 0, 0, 0  ' 按下 E
        keybd_event VK_E, 0, KEYEVENTF_KEYUP, 0  ' 松开 E
        keybd_event VK_L, 0, 0, 0  ' 按下 L
        keybd_event VK_L, 0, KEYEVENTF_KEYUP, 0  ' 松开 L
        keybd_event VK_L, 0, 0, 0  ' 按下 L
        keybd_event VK_L, 0, KEYEVENTF_KEYUP, 0  ' 松开 L
        keybd_event VK_O, 0, 0, 0  ' 按下 O
        keybd_event VK_O, 0, KEYEVENTF_KEYUP, 0  ' 松开 O
    End Sub在程序中只按下,不松开键就可以了