SendKeys.Send(String) Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee worden toetsaanslagen verzonden naar de actieve toepassing.
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)
Parameters
- keys
- String
De reeks toetsaanslagen die moeten worden verzonden.
Uitzonderingen
Er is geen actieve toepassing om toetsaanslagen naar te verzenden.
keys vertegenwoordigt geen geldige toetsaanslagen.
Voorbeelden
In het volgende codevoorbeeld ziet u hoe u de Send methode gebruikt. Als u het voorbeeld wilt uitvoeren, plakt u de volgende code in een formulier met de naam Form1 met een knop met de naam Button1. Zorg ervoor dat de klikgebeurtenissen zijn gekoppeld aan de methoden voor gebeurtenisafhandeling in dit voorbeeld. De eigenschap van TabIndex het knopbesturingselement moet worden ingesteld op 0. Wanneer het voorbeeld wordt uitgevoerd, dubbelklikt u op het formulier om de klikgebeurtenis van de knop te activeren.
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
Opmerkingen
Elke sleutel wordt vertegenwoordigd door een of meer tekens. Als u één toetsenbordteken wilt opgeven, gebruikt u het teken zelf. Als u bijvoorbeeld de letter A wilt weergeven, geeft u de tekenreeks 'A' door aan de methode. Als u meer dan één teken wilt weergeven, voegt u elk extra teken toe aan het teken dat eraan voorafgaat. Als u de letters A, B en C wilt weergeven, geeft u de parameter op als 'ABC'.
Het plusteken (+), caret (^), procentteken (%), tilde (~) en haakjes () hebben speciale betekenissen voor SendKeys. Als u een van deze tekens wilt opgeven, plaatst u deze tussen accolades ({}). Als u bijvoorbeeld het plusteken wilt opgeven, gebruikt u {+}. Als u accoladetekens wilt opgeven, gebruikt u {{}en }{}. Haakjes ([ ]) hebben geen speciale betekenis, SendKeysmaar u moet ze tussen accolades zetten. In andere toepassingen hebben vierkante haken een speciale betekenis die mogelijk significant is wanneer DDE (Dynamic Data Exchange) plaatsvindt.
Caution
Als uw toepassing is bedoeld voor internationaal gebruik met verschillende toetsenborden, kan het gebruik van Send onvoorspelbare resultaten opleveren en moet worden vermeden.
Als u tekens wilt opgeven die niet worden weergegeven wanneer u op een toets drukt, zoals Enter of Tab, en toetsen die acties vertegenwoordigen in plaats van tekens, gebruikt u de codes in de volgende tabel.
| Key | Code |
|---|---|
| BACKSPACE | {BACKSPACE}, {BS} of {BKSP} |
| BREAK | {BREAK} |
| CAPS-LOCK | {CAPSLOCK} |
| DEL of DELETE | {DELETE} of {DEL} |
| PIJL OMLAAG | {DOWN} |
| END | {END} |
| ENTER | {ENTER}of ~ |
| ESC | {ESC} |
| HELP | {HELP} |
| HOME | {HOME} |
| INS of INSERT | {INSERT} of {INS} |
| LINKERPIJL | {LEFT} |
| NUM LOCK | {NUMLOCK} |
| PAGINA OMLAAG | {PGDN} |
| Pagina omhoog | {PGUP} |
| PRINT SCREEN | {PRTSC} (gereserveerd voor toekomstig gebruik) |
| RECHTERPIJL | {RIGHT} |
| SCROLL LOCK | {SCROLLLOCK} |
| TAB | {TAB} |
| PIJL-OMHOOG | {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} |
| Toetsenblok toevoegen | {ADD} |
| Toetsenblok aftrekken | {SUBTRACT} |
| Toetsenblok vermenigvuldigen | {MULTIPLY} |
| Toetsenblok delen | {DIVIDE} |
Als u toetsen wilt opgeven in combinatie met een combinatie van shift-, Ctrl- en Alt-toetsen, gaat u vooraf aan de sleutelcode met een of meer van de volgende codes.
| Key | Code |
|---|---|
| PLOEG | + |
| CTRL | ^ |
| ALT | % |
Als u wilt opgeven dat een combinatie van Shift, Ctrl en Alt moet worden ingedrukt terwijl verschillende andere toetsen worden ingedrukt, plaatst u de code voor die toetsen tussen haakjes. Als u bijvoorbeeld shift ingedrukt wilt houden terwijl E en C worden ingedrukt, gebruikt u +(EC). Als u shift ingedrukt wilt houden terwijl E wordt ingedrukt, gevolgd door C zonder Shift, gebruikt u +EC.
Als u herhalende sleutels wilt opgeven, gebruikt u het formulier {sleutelnummer}. U moet een spatie tussen de sleutel en het getal plaatsen. {LEFT 42} betekent bijvoorbeeld dat u 42 keer op pijl-links drukt; {h 10} betekent dat u 10 keer op H drukt.
Note
Omdat er geen beheerde methode is om een andere toepassing te activeren, kunt u deze klasse in de huidige toepassing gebruiken of systeemeigen Windows methoden gebruiken, zoals FindWindow en SetForegroundWindow, om de focus op andere toepassingen af te dwingen.
Note
De klasse SendKeys is bijgewerkt voor het .NET Framework 3.0 om het gebruik ervan in te schakelen in toepassingen die worden uitgevoerd op Windows Vista. De verbeterde beveiliging van Windows Vista (ook wel gebruikersaccountbeheer of UAC genoemd) voorkomt dat de vorige implementatie werkt zoals verwacht.
De SendKeys klasse is vatbaar voor timingproblemen, die sommige ontwikkelaars hebben moeten omzeilen. De bijgewerkte implementatie is nog steeds vatbaar voor timingproblemen, maar is iets sneller en vereist mogelijk wijzigingen in de tijdelijke oplossingen. De SendKeys klasse probeert eerst de vorige implementatie te gebruiken en als dat mislukt, wordt de nieuwe implementatie gebruikt. Als gevolg hiervan kan de SendKeys klasse zich anders gedragen op verschillende besturingssystemen. Wanneer de SendKeys klasse gebruikmaakt van de nieuwe implementatie, wacht de SendWait methode bovendien niet tot berichten worden verwerkt wanneer ze naar een ander proces worden verzonden.
Als uw toepassing afhankelijk is van consistent gedrag, ongeacht het besturingssysteem, kunt u afdwingen dat de SendKeys klasse de nieuwe implementatie gebruikt door de volgende toepassingsinstelling toe te voegen aan uw app.config-bestand.
<appSettings>
<add key="SendKeys" value="SendInput"/>
</appSettings>
Als u wilt afdwingen dat de SendKeys klasse de vorige implementatie gebruikt, gebruikt u in plaats daarvan de waarde "JournalHook" .