簡體   English   中英

如何在VB中制作自動打字機,而不是僅放一段文本,而是如何逐個字母地鍵入?

[英]How to make an Auto Typer in VB, but instead of just putting a block of text, how to type it letter by letter?

我現在正在制作一個自動打字機,但是我發現當我這樣做時,該程序只是從文本框中獲取文本,然后將其粘貼。相反,我想要一個逐個字母地單詞。 有什么幫助嗎? 這是我的代碼:

Public Class Form1
Private Sub Label1_Click(sender As Object, e As EventArgs) Handles Label1.Click
    Me.Close()
End Sub

Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
    SendKeys.Send(BunifuMaterialTextbox2.Text)
    SendKeys.Send("{Enter}")
End Sub

末級

有什么幫助嗎?

實際上與具體問題無關,但是這是另一種無需手動創建Timer或使用SendKeys即可打印字母的方法。 可能以更具可讀性/可維護的方式

private async Task TypeWord(string word, int interval)
{            
    var builder = new StringBuilder();
    foreach (var letter in word)
    {
        builder.Append(letter);
        txtTypingTarget.Text = builder.ToString();

        await Task.Delay(interval);
    }
}

然后您可以調用它,例如單擊按鈕

private async void btnStartTyping_Click(object sender, EventArgs e)
{
    await TypeWord(txtTypingOrigin.Text, 500);
}

嘗試遍歷字符串中的每個字符,並將每個字符傳遞給SendKeys.Send

For Each ch As Char in str
    SendKeys.Send(ch)
Next

For Each循環使用

Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
   For Each c as Char In BunifuMaterialTextbox2.Text
        SendKeys.Send(c)
        SendKeys.Send("{Enter}")
   Next
End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM