10

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...

Cyclone
  • 17,939
  • 45
  • 124
  • 193

2 Answers2

10

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 ..."

Thomas Weller
  • 55,411
  • 20
  • 125
  • 222
Brian Webster
  • 30,033
  • 48
  • 152
  • 225
0

Do not Debug.

The Visual Studio Debugger was messing in my case.

Running the program on Release and not debugging gave me the intended behaviour while having it attached or on Debug config was duplicating the output

Noman_1
  • 473
  • 1
  • 6
  • 17