Private Sub letkeygo(ByVal key As Byte)
Dim kb_delay As Integer
Dim kb_speed As Integer
SystemParametersInfo(SPI_GETKEYBOARDDELAY, 0, kb_delay, 0)
SystemParametersInfo(SPI_GETKEYBOARDSPEED, 0, kb_speed, 0)
keybd_event(key, MapVirtualKey(key, 0), 2, 0)
End Sub
Private Sub HoldKeyDown(ByVal key As Byte)
Dim kb_delay As Integer
Dim kb_speed As Integer
SystemParametersInfo(SPI_GETKEYBOARDDELAY, 0, kb_delay, 0)
SystemParametersInfo(SPI_GETKEYBOARDSPEED, 0, kb_speed, 0)
keybd_event(key, MapVirtualKey(key, 0), 0, 0)
End sub
<System.Runtime.InteropServices.DllImport("user32.dll", SetLastError:=True)> _
Private Shared Function keybd_event(ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As UInt32, ByVal dwExtraInfo As UIntPtr) As Boolean
End Function
Private Sub InvokeKeydown(ByVal key As Keys)
Dim vk As Byte = CType(key, Byte)
keybd_event(vk, 0, 0, UIntPtr.Zero)
End Sub
Private Sub InvokeKeyup(ByVal key As Keys)
Dim vk As Byte = CType(key, Byte)
keybd_event(vk, 0, 2, UIntPtr.Zero)
End Sub
Private Sub InvokeKeypress(ByVal key As Keys, Optional ByVal holdLength As Integer = 10)
InvokeKeydown(key)
Threading.Thread.Sleep(holdLength)
InvokeKeyup(key)
End Sub