Sdílet prostřednictvím


SendKeys.Send(String) Metoda

Definice

Odešle stisknutí kláves do aktivní aplikace.

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)

Parametry

keys
String

Řetězec klávesových úhozů, které se mají odeslat.

Výjimky

Neexistuje aktivní aplikace pro odesílání klávesových stisků.

keys nepředstavuje platné klávesové zkratky.

Příklady

Následující příklad kódu ukazuje, jak použít metodu Send . Pokud chcete spustit příklad, vložte následující kód do formuláře s názvem Form1 obsahující tlačítko s názvem Button1. Ujistěte se, že jsou události kliknutí přidružené k jejich metodám zpracování událostí v tomto příkladu. Vlastnost ovládacího prvku TabIndex tlačítka by měla být nastavena na hodnotu 0. Když je příklad spuštěný, poklikejte na formulář a aktivujte událost kliknutí na tlačítko.

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

Poznámky

Každý klíč je reprezentován jedním nebo více znaky. Pokud chcete zadat jeden znak klávesnice, použijte samotný znak. Pokud chcete například reprezentovat písmeno A, předejte do metody řetězec "A". Chcete-li znázornit více než jeden znak, připojte každý další znak k předchozímu znaku. Chcete-li znázorňovat písmena A, B a C, zadejte parametr jako "ABC".

Znaménko plus (+), stříška (^), znak procenta (%), tilda (~) a závorky () mají zvláštní významy pro SendKeys. Pokud chcete zadat jeden z těchto znaků, uzavřete ho do složených závorek ({}). Pokud chcete například zadat znaménko plus, použijte {+}. Chcete-li zadat znaky složené závorky, použijte {{}a }{}. Závorky ([ ]) nemají žádný zvláštní význam SendKeys, ale musíte je uzavřít do složených závorek. V jiných aplikacích mají hranaté závorky zvláštní význam, který může být významný, když dojde k dynamické výměně dat (DDE).

Upozornění

Pokud je vaše aplikace určená pro mezinárodní použití s celou řadou klávesnic, mohlo by to Send přinést nepředvídatelné výsledky a mělo by se jim vyhnout.

Pokud chcete zadat znaky, které se nezobrazují při stisknutí klávesy, například KLÁVESY ENTER nebo TAB, a klávesy, které místo znaků představují akce, použijte kódy v následující tabulce.

Klíč Kód
BACKSPACE {BACKSPACE}, {BS} nebo {BKSP}
PŘESTÁVCE {BREAK}
KAPITÁLKY {CAPSLOCK}
DEL nebo DELETE {DELETE} nebo {DEL}
ŠIPKA DOLŮ {DOWN}
END {END}
ENTER {ENTER}nebo ~
ESC {ESC}
HELP {HELP}
DOMŮ {HOME}
INS nebo INSERT {INSERT} nebo {INS}
ŠIPKA VLEVO {LEFT}
NUM LOCK {NUMLOCK}
PAGE DOWN {PGDN}
PAGE UP {PGUP}
PRINT SCREEN {PRTSC} (vyhrazeno pro budoucí použití)
ŠIPKA VPRAVO {RIGHT}
SCROLL LOCK {SCROLLLOCK}
TAB {TAB}
ŠIPKA NAHORU {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}
Přidat klávesnici {ADD}
Odečítání klávesnice {SUBTRACT}
Násobení klávesnice {NÁSOBIT}
Dělení klávesnice {DIVIDE}

Pokud chcete zadat klávesy kombinované s libovolnou kombinací kláves SHIFT, CTRL a ALT, před kód klíče použijte jeden nebo více následujících kódů.

Klíč Kód
SHIFT +
CTRL ^
ALT %

Pokud chcete určit, že libovolná kombinace kláves SHIFT, CTRL a ALT by měla být při stisknutí několika dalších kláves stisknuta, uzavřete kód těchto kláves do závorek. Pokud chcete například zadat, aby se při stisknutí klávesy E a C stiskl shift, použijte +(EC).". Pokud chcete zadat, aby se při stisknutí klávesy E podržte klávesu SHIFT, a potom C bez SHIFT, použijte +EC.

Pokud chcete zadat opakující se klíče, použijte formulář {číslo klíče}. Musíte umístit mezeru mezi klíčem a číslem. Například {LEFT 42} znamená, že stisknete klávesu ŠIPKA VLEVO 42krát; {h 10} znamená stisknutí klávesy H 10 krát.

Poznámka

Vzhledem k tomu, že neexistuje žádná spravovaná metoda pro aktivaci jiné aplikace, můžete tuto třídu použít v rámci aktuální aplikace nebo použít nativní metody Windows, například FindWindow a SetForegroundWindow, k vynucení zaměření na jiné aplikace.

Poznámka

Třída SendKeys byla aktualizována pro .NET Framework 3.0, aby umožňovala jeho použití v aplikacích, které běží na Windows Vista. Vylepšené zabezpečení Windows Vista (označované jako Řízení uživatelských účtů nebo UAC) brání předchozí implementaci fungovat podle očekávání.

Třída SendKeys je náchylná k problémům s časováním, se kterými museli někteří vývojáři pracovat. Aktualizovaná implementace je stále náchylná k problémům s načasováním, ale je mírně rychlejší a může vyžadovat změny alternativních řešení. Třída SendKeys se nejprve pokusí použít předchozí implementaci a pokud selže, použije novou implementaci. V důsledku toho se SendKeys třída může chovat odlišně v různých operačních systémech. Kromě toho, když SendKeys třída používá novou implementaci, SendWait metoda nebude čekat na zpracování zpráv při odeslání do jiného procesu.

Pokud vaše aplikace spoléhá na konzistentní chování bez ohledu na operační systém, můžete vynutit SendKeys použití nové implementace přidáním následujícího nastavení aplikace do souboru app.config.

<appSettings>

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

</appSettings>

Chcete-li vynutit SendKeys , aby třída používala předchozí implementaci, použijte místo toho hodnotu "JournalHook" .

Platí pro