Freigeben über


SendKeys Klasse

Definition

Stellt Methoden für das Senden von Tastatureingaben an eine Anwendung bereit.

public ref class SendKeys
public class SendKeys
type SendKeys = class
Public Class SendKeys
Vererbung
SendKeys

Beispiele

Das folgende Codebeispiel zeigt, wie Sie die Send-Methode verwenden. Fügen Sie zum Ausführen des Beispiels den folgenden Code in ein Formular namens "Form1" ein, das eine Schaltfläche namens "Button1" enthält. Stellen Sie sicher, dass die Klickereignisse ihren Ereignisbehandlungsmethoden in diesem Beispiel zugeordnet sind. Die Eigenschaft des Schaltflächensteuerelements TabIndex sollte auf 0 festgelegt werden. Wenn das Beispiel ausgeführt wird, doppelklicken Sie auf das Formular, um das Klickereignis der Schaltfläche auszulösen.

private:
   // Clicking Button1 causes a message box to appear.
   void Button1_Click( System::Object^ /*sender*/, System::EventArgs^ /*e*/ )
   {
      MessageBox::Show( "Click here!" );
   }

   // Use the SendKeys.Send method to raise the Button1 click event 
   // and display the message box.
   void Form1_DoubleClick( Object^ /*sender*/, System::EventArgs^ /*e*/ )
   {
      
      // Send the enter key; since the tab stop of Button1 is 0, this
      // will trigger the click event.
      SendKeys::Send( "{ENTER}" );
   }

// Clicking Button1 causes a message box to appear.
private void Button1_Click(System.Object sender, System.EventArgs e)
{
    MessageBox.Show("Click here!");
}

// Use the SendKeys.Send method to raise the Button1 click event 
// and display the message box.
private void Form1_DoubleClick(object sender, System.EventArgs e)
{

    // Send the enter key; since the tab stop of Button1 is 0, this
    // will trigger the click event.
    SendKeys.Send("{ENTER}");
}

' Clicking Button1 causes a message box to appear.
Private Sub Button1_Click(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles Button1.Click
    MessageBox.Show("Click here!")
End Sub


' Use the SendKeys.Send method to raise the Button1 click event 
' and display the message box.
Private Sub Form1_DoubleClick(ByVal sender As Object, _
    ByVal e As System.EventArgs) Handles MyBase.DoubleClick

    ' Send the enter key; since the tab stop of Button1 is 0, this
    ' will trigger the click event.
    SendKeys.Send("{ENTER}")
End Sub

Hinweise

Dient SendKeys zum Senden von Tastenanschlägen und Tastenkombinationen an die aktive Anwendung. Diese Klasse kann nicht instanziiert werden. Verwenden Sie die Verwendung Send, um einen Tastenanschlag an eine Klasse zu senden und sofort mit dem Fluss Ihres Programms fortzufahren. Um auf alle Prozesse zu warten, die von der Tastenkombination gestartet wurden, verwenden Sie SendWait.

Jede Taste wird durch ein oder mehrere Zeichen dargestellt. Verwenden Sie das Zeichen selbst, um ein einzelnes Tastaturzeichen anzugeben. Um beispielsweise den Buchstaben A darzustellen, übergeben Sie die Zeichenfolge "A" an die Methode. Wenn Sie mehrere Zeichen darstellen möchten, fügen Sie jedes zusätzliche Zeichen an das Zeichen an, das sie vorangeht. Um die Buchstaben A, B und C darzustellen, geben Sie den Parameter als "ABC" an.

Das Pluszeichen (+), Caret (^), Prozentzeichen (%), Tilde (~) und Klammern () haben besondere Bedeutungen.SendKeys Um eines dieser Zeichen anzugeben, schließen Sie sie in geschweifte Klammern ({}) ein. Wenn Sie z. B. das Pluszeichen angeben möchten, verwenden Sie "{+}". Wenn Sie geschweifte Zeichen angeben möchten, verwenden Sie "{{}" und "{}}". Klammern ([ ]) haben keine besondere Bedeutung, SendKeysaber Sie müssen sie in geschweifte Klammern einschließen. In anderen Anwendungen haben Klammern eine besondere Bedeutung, die möglicherweise erheblich sein kann, wenn der dynamische Datenaustausch (Dynamic Data Exchange, DDE) auftritt.

Achtung

Wenn Ihre Anwendung für internationale Verwendung mit unterschiedlichen Tastaturen vorgesehen ist, kann ein Verwenden von Send zu unvorhersehbaren Ergebnissen führen und sollte vermieden werden.

Verwenden Sie zum Angeben von Zeichen, die nicht angezeigt werden, wenn Sie eine TASTE drücken, z. B. EINGABETASTE oder TAB, und Tasten, die Aktionen anstelle von Zeichen darstellen, die Codes in der folgenden Tabelle verwenden.

Key Code
RÜCKTASTE {BACKSPACE}, {BS}, oder {BKSP}
BREAK {BREAK}
FESTSTELLTASTE {CAPSLOCK}
ENTF oder LÖSCHEN {DELETE} oder {DEL}
NACH-UNTEN-TASTE {DOWN}
ENDE {END}
EINGABETASTE {EINGABETASTE} oder ~
ESC {ESC}
HELP {HELP}
POS1 {HOME}
INS oder EINFÜGEN {INSERT} oder {INS}
NACH-LINKS-TASTE {LEFT}
ZAHLENSPERRE {NUMLOCK}
BILD-AB {PGDN}
BILD-AUF {PGUP}
DRUCKBILDSCHIRM {PRTSC} (reserviert für zukünftige Nutzung)
NACH-RECHTS-TASTE {RIGHT}
BILDLAUFSPERRE {SCROLLLOCK}
TAB {TAB}
NACH-OBEN-TASTE {UP}
F1 {F1}
F2 {F2}
F3 {F3}
F4 {F4}
F5 {F5}
F6 {F6}
F7 {F7}
F8 {F8}
F9 {F9}
F10 {F10}
F11 {F11}
F12 {F12}
F13 {F13}
F14 {F14}
F15 {F15}
F16 {F16}
Tastatur hinzufügen {ADD}
Tastatur subtrahieren {SUBTRAH}
Tastatur multiplizieren {MULTIPLIZIEREN}
Trenntaste {DIVID}

Wenn Sie Tasten zusammen mit einer beliebigen Kombination aus UMSCHALT-, STRG- und ALT-Tasten angeben möchten, stellen Sie dem Tastencode einen oder mehrere der folgenden Codes voran.

Key Code
UMSCHALTEN +
STRG ^
ALT %

Um anzugeben, dass eine beliebige Kombination aus UMSCHALT, STRG und ALT gedrückt gehalten werden soll, während mehrere andere Tasten gedrückt werden, schließen Sie den Code für diese Tasten in Klammern ein. Wenn Sie z. B. die UMSCHALTTASTE gedrückt halten möchten, während E und C gedrückt werden, verwenden Sie "+(EC)". Wenn Sie angeben möchten, dass die UMSCHALTTASTE gedrückt wird, während E gedrückt wird, gefolgt von C ohne UMSCHALTTASTE, verwenden Sie "+EC".

Verwenden Sie das Formular "{key number}", um wiederholte Tasten anzugeben. Sie müssen einen Leerzeichen zwischen Schlüssel und Nummer platzieren. {LEFT 42} bedeutet beispielsweise, dass die NACH-LINKS-TASTE 42 mal gedrückt wird; {h 10} bedeutet, dass H 10 mal gedrückt wird.

Hinweis

Da es keine verwaltete Methode zum Aktivieren einer anderen Anwendung gibt, können Sie diese Klasse entweder innerhalb der aktuellen Anwendung verwenden oder native Windows Methoden verwenden, zFindWindow. B. und SetForegroundWindow, um den Fokus auf andere Anwendungen zu erzwingen.

Hinweis

Die SendKeys -Klasse wurde für .NET Framework 3.0 aktualisiert, damit sie in Anwendungen verwendet werden kann, die unter Windows Vista ausgeführt werden. Die verbesserte Sicherheit von Windows Vista (Stichwort Benutzerkontensteuerung) verhindert, dass die vorherige Implementierung ordnungsgemäß funktioniert.

Die SendKeys -Klasse ist anfällig für Probleme hinsichtlich der zeitlichen Steuerung, sodass einige Entwickler gezwungen waren, Umgehungslösungen zu finden. Die aktualisierte Implementierung ist immer noch anfällig für Probleme hinsichtlich der zeitlichen Steuerung, ist jedoch etwas schneller und erfordert möglicherweise Änderungen an den Umgehungslösungen. Die SendKeys -Klasse versucht zunächst, die vorherige Implementierung zu verwenden. Schlägt dies fehl, wird die neue Implementierung verwendet. Infolgedessen verhält sich die SendKeys -Klasse unter verschiedenen Betriebssystemen möglicherweise unterschiedlich. Verwendet die SendKeys -Klasse die neue Implementierung, wartet die SendWait -Methode nicht auf zu verarbeitende Nachrichten, wenn diese an einen anderen Prozess gesendet werden.

Ist für Ihre Anwendung ein einheitliches, vom Betriebssystem unabhängiges Verhalten erforderlich, können Sie für die SendKeys -Klasse das Verwenden der neuen Implementierung erzwingen, indem Sie die folgende Anwendungseinstellung in Ihre "app.config"-Datei einfügen.

<appSettings>

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

</appSettings>

Soll die SendKeys -Klasse gezwungen werden, die vorherige Implementierung zu verwenden, geben Sie stattdessen den Wert "JournalHook" an.

Methoden

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
Flush()

Verarbeitet alle Windows-Meldungen, die sich derzeit in der Meldungswarteschlange befinden.

GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
Send(String)

Sendet Tastatureingaben an die aktive Anwendung.

SendWait(String)

Sendet die angegebenen Tasten an die aktive Anwendung und wartet anschließend die Verarbeitung der Meldungen ab.

ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Gilt für