Советы тем, кто программирует на VB & VBA

Листинг 2. Имитация нажатия клавиши клавиатуры

Option Explicit
Public Const KEYEVENTF_EXTENDEDKEY = &H1
Public Const KEYEVENTF_KEYUP = &H2
Declare Sub keybd_event Lib "user32" _
    (ByVal bVk As Byte, ByVal bScan As Byte, _
    ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Declare Function VkKeyScan Lib "user32" Alias "VkKeyScanA"_
    (ByVal cChar As Byte) As Integer
Declare Function CharToOem Lib "user32" Alias "CharToOemA"_
    (ByVal lpszSrc As String, ByVal lpszDst As String) As Long
Declare Function OemKeyScan Lib "user32" _
    (ByVal wOemChar As Integer) As Long
Public Sub SendMyKey(ByVal c$)
'
' Посылка одиночного ASCI-символа для имитации
' нажатия клавиши клавиатуры
    Dim vk%, scan%, oemchar$
        ' Получаем значение виртуального кода
        ' клавиши для данного символа
    vk% = VkKeyScan(Asc(c$)) And &HFF
    oemchar$ = " " ' буфер на два символа
    ' получение OEM-символа
    CharToOem Left$(c$, 1), oemchar$
        ' получение scan-кода для этой клавиши
    scan% = OemKeyScan(Asc(oemchar$)) And &HFF
        ' Нажатие клавиши
    keybd_event vk%, scan%, 0, 0
        ' Отжатие клавиши
    keybd_event vk%, scan%, KEYEVENTF_KEYUP, 0
End Sub

Возврат

Наш канал на Youtube

1999 1 2 3 4 5 6 7 8 9 10 11 12
2000 1 2 3 4 5 6 7 8 9 10 11 12
2001 1 2 3 4 5 6 7 8 9 10 11 12
2002 1 2 3 4 5 6 7 8 9 10 11 12
2003 1 2 3 4 5 6 7 8 9 10 11 12
2004 1 2 3 4 5 6 7 8 9 10 11 12
2005 1 2 3 4 5 6 7 8 9 10 11 12
2006 1 2 3 4 5 6 7 8 9 10 11 12
2007 1 2 3 4 5 6 7 8 9 10 11 12
2008 1 2 3 4 5 6 7 8 9 10 11 12
2009 1 2 3 4 5 6 7 8 9 10 11 12
2010 1 2 3 4 5 6 7 8 9 10 11 12
2011 1 2 3 4 5 6 7 8 9 10 11 12
2012 1 2 3 4 5 6 7 8 9 10 11 12
2013 1 2 3 4 5 6 7 8 9 10 11 12
Популярные статьи
КомпьютерПресс использует