Cyclone Cyclone - 1 month ago 11
Vb.net Question

Vb.net sendkeys, letters duplicate?

I created a simple test with SendKeys, and tried both SendWait and Send.

Private Sub Form1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Click
System.Threading.Thread.Sleep(10000)
SendKeys.SendWait("If you can read this, it works." + "{ENTER}")
End Sub


I tested in skype, and a few of the letters doubled. I tested in Flash, I got "Iffff yyouu cccaaaannn rrreaaaddd thhhiiisss,,, iiittt wwwooorrrrkkks."

Clearly the issue is caused by lag. What can I do to prevent doubling (or tripling) of letters? I'm probably missing something big here...

Answer

In your app settings (app.config in a Visual Studio solution, or <myapp>.exe.config when located side by side to the application), add the following as child of the <configuration> element:

<appSettings>    
    <add key="SendKeys" value="SendInput"/>    
</appSettings> 

If that doesn't work, try:

<appSettings>    
    <add key="SendKeys" value="JournalHook"/>    
</appSettings> 

Source: SendWait() [MSDN]

"... As a result, the SendKeys class may behave differently on different operating systems ..."

Comments