2010-02-27 7 views
10

Ich erstellte einen einfachen Test mit SendKeys und versuchte SendWait und Send.Vb.net sendkeys, Buchstaben duplizieren?

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 

Ich getestet in Skype, und ein paar der Buchstaben verdoppelt. Ich habe in Flash getestet, ich habe "Iffff yyouu cccaaaannn rrreaaaddd thhhiiisss ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

Offensichtlich wird das Problem durch Verzögerung verursacht. Was kann ich tun, um das Verdoppeln (oder Verdreifachen) von Briefen zu verhindern? Ich bin wahrscheinlich hier etwas Großes ...

Antwort

10

In der App-Einstellungen (app.config in einer Visual Studio-Lösung oder <myapp>.exe.config wenn Seite einander zur Anwendung), fügen Sie das folgende als Kind des <configuration> Element:

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

Wenn das nicht funktioniert, versuchen Sie:

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

Quelle: SendWait() [MSDN]

„... Als Ergebnis wird die Klasse Sendkeys unterschiedlich auf verschiedenen Betriebssysteme verhalten ...“

+0

Die arbeitete zunächst für mich auf Windows 7. –