Vb.net отправка ключей, дубликаты писем? - PullRequest
10 голосов
/ 27 февраля 2010

Я создал простой тест с SendKeys и попробовал и SendWait, и 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

Я тестировал в скайпе, и несколько букв удвоились. Я тестировал во Flash, я получил "Iffff yyouu cccaaaannn rrreaaaddd thhhiiisss ,,, iiittt wwwooorrrrkkks."

Очевидно, что проблема вызвана лагом. Что я могу сделать, чтобы предотвратить удвоение (или утроение) букв? Я, наверное, скучаю по чему-то большому здесь ...

1 Ответ

10 голосов
/ 27 февраля 2010

В настройках приложения (app.config в решении Visual Studio или <myapp>.exe.config, если он расположен рядом с приложением), добавьте следующее как дочерний элемент <configuration>:

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

Если это не сработает, попробуйте:

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

Источник: SendWait () [MSDN]

"... В результате класс SendKeys может вести себя по-разному на разных операционные системы ... "

...