fadi Posted July 4, 2003 Posted July 4, 2003 Hello, how can i simulate a keyboard press. I mean i have lets say a string "Hello". i want to iterate through the characters of the string and simulate a keypress of the read character. So if a notepad is opened while execution and the its active, then hello will be printed on the notepad Quote
*Experts* mutant Posted July 4, 2003 *Experts* Posted July 4, 2003 This api will do what you want: http://www.mentalis.org/apilist/keyb_event.shtml Example(from the site, but modified to work in .net: 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 Integer, ByVal dwExtraInfo As Integer) Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.Show() Do While Me.Created keybd_event(VK_H, 0, 0, 0) ' press H keybd_event(VK_H, 0, KEYEVENTF_KEYUP, 0) ' release H keybd_event(VK_E, 0, 0, 0) ' press E keybd_event(VK_E, 0, KEYEVENTF_KEYUP, 0) ' release E keybd_event(VK_L, 0, 0, 0) ' press L keybd_event(VK_L, 0, KEYEVENTF_KEYUP, 0) ' release L keybd_event(VK_L, 0, 0, 0) ' press L keybd_event(VK_L, 0, KEYEVENTF_KEYUP, 0) ' release L keybd_event(VK_O, 0, 0, 0) ' press O keybd_event(VK_O, 0, KEYEVENTF_KEYUP, 0) ' release O Application.DoEvents() Loop End Sub Quote
Leaders dynamic_sysop Posted July 4, 2003 Leaders Posted July 4, 2003 if you just want the ability to open something like notepad and write to it when it opens you can do this : Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Shell("notepad.exe", AppWinStyle.NormalFocus) SendKeys.Send("hello") '/// wont work with Process.Start , but will with Shell End Sub Quote
fadi Posted July 7, 2003 Author Posted July 7, 2003 thanks, the first code was the one im looking for,anyways the second was nice, it can be helpfull for the future Quote
Recommended Posts