' ' This Visual Basic 6 project requires a timer called Timer1 on the form. ' Start the project and move the cursor to any text box, in any window. ' Private Const VK_H = 72 Private Const VK_E = 69 Private Const VK_L = 76 Private Const VK_O = 79 Private Const KEYEVENTF_KEYUP = &H2 Private Const INPUT_MOUSE = 0 Private Const INPUT_KEYBOARD = 1 Private Const INPUT_HARDWARE = 2 Private Type MOUSEINPUT dx As Long dy As Long mouseData As Long dwFlags As Long time As Long dwExtraInfo As Long End Type Private Type KEYBDINPUT wVk As Integer wScan As Integer dwFlags As Long time As Long dwExtraInfo As Long End Type Private Type HARDWAREINPUT uMsg As Long wParamL As Integer wParamH As Integer End Type Private Type GENERALINPUT dwType As Long xi(0 To 23) As Byte End Type Private Declare Function SendInput Lib "user32.dll" (ByVal nInputs As Long, pInputs As GENERALINPUT, ByVal cbSize As Long) As Long Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDst As Any, pSrc As Any, ByVal ByteLen As Long) Private Sub Form_KeyPress(KeyAscii As Integer) 'Print the key on the form Me.Print Chr$(KeyAscii); End Sub Private Sub Form_Load() Timer1.Enabled = False Timer1.Interval = 5000 Timer1.Enabled = True Me.Caption = "Click on any textbox in any window and wait for a few seconds" End Sub Private Sub SendKey(bKey As Byte) Dim GInput(0 To 1) As GENERALINPUT Dim KInput As KEYBDINPUT KInput.wVk = bKey 'the key we're going to press KInput.dwFlags = 0 'press the key 'copy the structure into the input array's buffer. GInput(0).dwType = INPUT_KEYBOARD ' keyboard input CopyMemory GInput(0).xi(0), KInput, Len(KInput) 'do the same as above, but for releasing the key KInput.wVk = bKey ' the key we're going to realease KInput.dwFlags = KEYEVENTF_KEYUP ' release the key GInput(1).dwType = INPUT_KEYBOARD ' keyboard input CopyMemory GInput(1).xi(0), KInput, Len(KInput) 'send the input now Call SendInput(2, GInput(0), Len(GInput(0))) End Sub Private Sub Timer1_Timer() SendKey VK_H SendKey VK_E SendKey VK_L SendKey VK_L SendKey VK_O Timer1.Enabled = False End Sub