Листинг 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