2010-02-27 30 views
10

Tôi đã tạo một thử nghiệm đơn giản với SendKeys và thử cả SendWait và Send.Phím gửi Vb.net, chữ cái trùng lặp?

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 

Tôi đã thử nghiệm trên skype và một vài chữ cái tăng gấp đôi. Tôi đã thử nghiệm trong Flash, tôi nhận được "Iffff yyouu cccaaaannn rrreaaaddd thhhiiisss ,,, iiittt wwwooorrrrkkks."

Rõ ràng vấn đề là do độ trễ. Tôi có thể làm gì để ngăn chặn việc tăng gấp đôi (hoặc gấp ba lần) các chữ cái? Tôi có thể thiếu cái gì lớn ở đây ...

Trả lời

10

Trong cài đặt ứng dụng của bạn (app.config trong một dung dịch Visual Studio, hoặc <myapp>.exe.config khi nằm cạnh nhau để ứng dụng), thêm dòng sau khi con của phần tử <configuration>:

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

Nếu điều đó không làm việc, hãy thử:

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

Nguồn: SendWait() [MSDN]

"... Kết quả là, các SendKeys lớp có thể cư xử khác nhau trên hệ thống điều hành khác nhau ..."

+0

Đầu tiên làm việc cho tôi trên Windows 7. –

Các vấn đề liên quan