Freigeben über


SendKeys.Send(String) Methode

Definition

Sendet Tastatureingaben an die aktive Anwendung.

public:
 static void Send(System::String ^ keys);
public static void Send (string keys);
static member Send : string -> unit
Public Shared Sub Send (keys As String)

Parameter

keys
String

Die zu sendende Zeichenfolge der Tastatureingaben.

Ausnahmen

Es ist keine aktive Anwendung vorhanden, an die Tastaturanschläge gesendet werden können.

keys stellt keine gültigen Tastenkombinationen dar.

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, 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 Schaltfläche1 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

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 {ENTER}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}
Hinzufügen von Tastenkombinationen {ADD}
Tastenkombination subtrahiert {SUBTRAHIERT}
Tastenkombination multiplizieren {MULTIPLIZIERT}
Trenntaste {DIVID}

Um Tasten mit einer beliebigen Kombination aus UMSCHALT-, STRG- und ALT-Tasten anzugeben, stellen Sie den Tastencode mit einem oder mehreren der folgenden Codes vor.

Key Code
UMSCHALTEN +
STRG ^
ALT %

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

Um wiederholte Schlüssel anzugeben, verwenden Sie das Formular {Key number}. Sie müssen einen Leerzeichen zwischen Schlüssel und Zahl 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 keine verwaltete Methode zum Aktivieren einer anderen Anwendung vorhanden ist, 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.

Gilt für