Simulieren einen Tastendruck in C#

Saad Aslam 12 Oktober 2023
Simulieren einen Tastendruck in C#

Dieser Artikel zeigt einen schnellen und unkomplizierten Ansatz zum Simulieren eines Tastendrucks in C#.

Während des Testens müssen Sie möglicherweise eine Folge von gedrückten Schaltflächen (einen Tastendruck) an das ausgewählte Objekt - ein Steuerelement oder ein Fenster - übertragen. Sie können Tastenanschläge aus Schlüsselworttests und Skripten simulieren, indem Sie Tastencodes an das ausgewählte Steuerelement oder Fenster übertragen.

Erstellen eine Formularanwendung in C#

Erstellen Sie zunächst eine neue Windows Form-Anwendung in Visual Studio.

Öffnen Sie Ihre .cs-Designdatei und erstellen Sie ein Etikett mit dem Namen numberLabel und weisen Sie ihm einen Text zu, der "Text To Be Displayed" sein kann, und stellen Sie seine Ausrichtung auf Middle Center ein, um sauber auszusehen.

Lassen Sie uns numPadButton und alphabetButton erstellen und den Text "Click Me" zu beiden Schaltflächen hinzufügen. Doppelklicken Sie auf Ihren numPadButton, wodurch Sie zur numPadButton_Click-Funktion navigiert werden.

Weisen Sie innerhalb dieser Funktion dem numberLabel einen Text zu. Dieser Text wird angezeigt, sobald die von uns zugewiesene Taste gedrückt wird.

private void numPadButton_Click(object sender, EventArgs e) {
  numberLabel.Text = "Numpad Button 0 Pressed";
}

Führen Sie die gleichen Schritte mit dem alphabetButton durch. Weisen Sie innerhalb der Funktion alphabetButton_Click dem numberLabel einen anderen Text zu, da dieser Text auf einer anderen gedrückten Taste angezeigt wird.

private void alphabetButton_Click(object sender, EventArgs e) {
  numberLabel.Text = "Enter Pressed";
}

Ausgabe:

Erstellen Sie eine Formularanwendung in c#

Wir müssen die KeyPreview-Funktionalität für unser Formular aktivieren, die bestimmt, ob die Tastaturereignisse mit dem Formular registriert werden oder nicht. Klicken Sie also auf das gesamte Formular und setzen Sie im Eigenschaftenbereich auf der rechten Seite den Wert KeyPreview auf true.

Dann brauchen wir ein KeyDown-Ereignis, das das Tastendruckereignis identifiziert und verarbeitet, und um es hinzuzufügen, gehen Sie zum Eigenschaftenfenster und öffnen Sie die Registerkarte Ereignisse mit einem Blitzsymbol. Scrollen Sie nach unten zum Ereignis KeyDown und doppelklicken Sie darauf.

Es erstellt eine Form1_KeyDown()-Methode und navigiert Sie zu dieser Methode. Diese Methode akzeptiert zwei Argumente, einen sender vom Typ object und ein Ereignis e vom Typ KeyEventArgs.

private void Form1_KeyDown(object sender, KeyEventArgs e) {}

Nun müssen wir mit dem Button-Klick das Drücken einer bestimmten Taste imitieren. Diese Funktion empfängt die gedrückte Taste, und wir überprüfen, ob die empfangene Taste NumPad0 ist, und führen dann den Klick auf numPadButton aus.

if (e.KeyCode == Keys.NumPad0) {
  numPadButton.PerformClick();
}

Mit dem alphabetButton müssen wir den gleichen Prozess befolgen. Doppelklicken Sie also auf der Registerkarte Event auf das Ereignis KeyUp und prüfen Sie in der Funktion Form1_KeyUp(), ob die empfangene Taste Enter ist, und klicken Sie dann auf alphabetButton.

using System;

namespace SimulateKeyPress {
  public partial class Form1 : Form {
    public Form1() {
      InitializeComponent();
    }

    private void numPadButton_Click(object sender, EventArgs e) {
      numberLabel.Text = "Numpad Button 0 Pressed";
    }

    private void alphabetButton_Click(object sender, EventArgs e) {
      numberLabel.Text = "Enter Pressed";
    }

    private void Form1_KeyDown(object sender, KeyEventArgs e) {
      if (e.KeyCode == Keys.NumPad0) {
        numPadButton.PerformClick();
      }
    }

    private void Form1_KeyUp(object sender, KeyEventArgs e) {
      if (e.KeyCode == Keys.Enter) {
        alphabetButton.PerformClick();
      }
    }

    private void numberLabel_Click(object sender, EventArgs e) {}
  }
}

Ausgabe:

Wenn das Numpad 0 auf der Tastatur gedrückt wird.

Numpad 0 wird von der Tastatur gedrückt

Wenn die Enter auf der Tastatur gedrückt wird.

Eingabetaste auf der Tastatur gedrückt wird

Autor: Saad Aslam
Saad Aslam avatar Saad Aslam avatar

I'm a Flutter application developer with 1 year of professional experience in the field. I've created applications for both, android and iOS using AWS and Firebase, as the backend. I've written articles relating to the theoretical and problem-solving aspects of C, C++, and C#. I'm currently enrolled in an undergraduate program for Information Technology.

LinkedIn

Verwandter Artikel - Csharp GUI