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...
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 ..."
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
精彩评论