Freigeben über


SendKeys Klasse

Definition

Stellt Methoden zum Senden von Tastaturanschlägen an eine Anwendung bereit.

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

Beispiele

Im folgenden Codebeispiel wird die Verwendung der Send Methode veranschaulicht. Zum Ausführen des Beispiels fügen Sie 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

Wird verwendet SendKeys , um Tastenanschläge und Tastenkombinationen an die aktive Anwendung zu senden. Diese Klasse kann nicht instanziiert werden. Um einen Tastenanschlag an einen Kurs zu senden und sofort mit dem Fluss Ihres Programms fortzufahren, verwenden Sie Send. Um auf alle Prozesse zu warten, die von der Tastatureingabe gestartet wurden, verwenden Sie SendWait.

Jeder Schlüssel wird durch ein oder mehrere Zeichen dargestellt. Verwenden Sie das Zeichen selbst, um ein einzelnes Tastaturzeichen anzugeben. Um z. B. den Buchstaben A darzustellen, übergeben Sie die Zeichenfolge "A" an die Methode. Um mehr als ein Zeichen darzustellen, fügen Sie jedes zusätzliche Zeichen an die vorangehende Anfügemarke an. 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 für SendKeys. Um eines dieser Zeichen anzugeben, schließen Sie sie in geschweifte Klammern ({}) ein. Wenn Sie beispielsweise das Pluszeichen angeben möchten, verwenden Sie "{+}". Um geschweifte Zeichen anzugeben, verwenden Sie "{{}" und "{}}". Klammern ([ ]) haben keine besondere Bedeutung für SendKeys, aber Sie müssen sie in geschweifte Klammern einschließen. In anderen Anwendungen haben Klammern eine besondere Bedeutung, die bei einem dynamischen Datenaustausch (Dynamic Data Exchange, DDE) erheblich sein kann.

Vorsicht

Wenn Ihre Anwendung für die internationale Verwendung mit einer Vielzahl von Tastaturen vorgesehen ist, kann die Verwendung unvorhersehbarer Send Ergebnisse erzielt werden und sollte vermieden werden.

Verwenden Sie die Codes in der folgenden Tabelle, um Zeichen anzugeben, die nicht angezeigt werden, wenn Sie eine Taste drücken, z. B. DIE EINGABETASTE oder DIE TAB-TASTE, die Aktionen anstelle von Zeichen darstellen.

Schlüssel Code
RÜCKTASTE {RÜCKTASTE}, {BS} oder {BKSP}
BREAK {BREAK}
FESTSTELLTASTE {CAPSLOCK}
DEL oder DELETE {DELETE} oder {DEL}
NACH-UNTEN-TASTE {DOWN}
END {END}
ENTER {EINGABETASTE} oder ~
ESC {ESC}
HELP {HELP}
HOME {HOME}
INS oder INSERT {INSERT} oder {INS}
NACH-LINKS-TASTE {LEFT}
NUM {NUMLOCK}
BILD-AB {PGDN}
BILD-AUF {PGUP}
DRUCKBILDSCHIRM {PRTSC} (reserviert für die zukünftige Nutzung)
NACH-RECHTS-TASTE {RIGHT}
ROLLEN {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}
Wähltastatur subtrahieren {SUBTRAHIEREN}
Tastatur multiplizieren {MULTIPLIZIEREN}
Trenntaste {DIVID}

Um Tasten in Kombination mit einer beliebigen Kombination von UMSCHALT-, STRG- und ALT-Tasten anzugeben, stellen Sie dem Tastencode einen oder mehrere der folgenden Codes voran.

Schlüssel Code
UMSCHALT +
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. angeben möchten, dass die UMSCHALTTASTE gedrückt wird, 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 UMSCHALT, verwenden Sie "+EC".

Verwenden Sie das Formular {Schlüsselnummer}, um wiederholte Schlüssel anzugeben. Sie müssen ein Leerzeichen zwischen Schlüssel und Zahl setzen. {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 systemeigene Windows-Methoden verwenden, z FindWindow . B. und SetForegroundWindow, um den Fokus auf andere Anwendungen zu erzwingen.

Hinweis

Die SendKeys Klasse wurde für .NET Framework 3.0 aktualisiert, um die Verwendung in Anwendungen zu aktivieren, die unter Windows Vista ausgeführt werden. Die verbesserte Sicherheit von Windows Vista (bekannt als Benutzerkontensteuerung oder UAC) verhindert, dass die vorherige Implementierung erwartungsgemäß funktioniert.

Die SendKeys Klasse ist anfällig für Timing-Probleme, die einige Entwickler umgehen mussten. Die aktualisierte Implementierung ist immer noch anfällig für Zeitprobleme, ist aber etwas schneller und kann Änderungen an den Problemumgehungen erfordern. Die SendKeys Klasse versucht zuerst, die vorherige Implementierung zu verwenden. Wenn dies fehlschlägt, wird die neue Implementierung verwendet. Daher kann sich die SendKeys Klasse auf unterschiedlichen Betriebssystemen anders verhalten. Wenn die Klasse die SendKeys neue Implementierung verwendet, wartet die SendWait Methode nicht, bis Nachrichten verarbeitet werden, wenn sie an einen anderen Prozess gesendet werden.

Wenn Ihre Anwendung unabhängig vom Betriebssystem auf ein einheitliches Verhalten angewiesen ist, können Sie erzwingen, dass die SendKeys neue Implementierung verwendet wird, indem Sie der app.config Datei die folgende Anwendungseinstellung hinzufügen.

<appSettings>

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

</appSettings>

Um zu erzwingen, dass die SendKeys Klasse die vorherige Implementierung verwendet, verwenden Sie stattdessen den Wert "JournalHook" .

Methoden

Name Beschreibung
Equals(Object)

Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht.

(Geerbt von Object)
Flush()

Verarbeitet alle Windows-Nachrichten, die sich derzeit in der Nachrichtenwarteschlange befinden.

GetHashCode()

Dient als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft die Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie der aktuellen Object.

(Geerbt von Object)
Send(String)

Sendet Tastenanschläge an die aktive Anwendung.

SendWait(String)

Sendet die angegebenen Schlüssel an die aktive Anwendung und wartet dann, bis die Nachrichten verarbeitet werden.

ToString()

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

(Geerbt von Object)

Gilt für: