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ů k odeslání.

Výjimky

Neexistuje aktivní aplikace pro odesílání stisknutí kláves.

keys nepředstavuje platné stisknutí kláves.

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. V tomto příkladu se ujistěte, že jsou události kliknutí přidružené k jejich metodám zpracování událostí. 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 vyjádřit písmeno A, předejte do metody řetězec "A". Pokud chcete 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ýznam 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 složené znaky, 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ýchaplikacích

Upozornění

Pokud je vaše aplikace určená pro mezinárodní použití s celou řadou klávesnic, může použití 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 ENTER nebo TAB, a klávesy, které představují akce místo znaků, použijte kódy v následující tabulce.

Klíč Code
BACKSPACE {BACKSPACE}, {BS} nebo {BKSP}
BREAK {BREAK}
Caps Lock {CAPSLOCK}
DEL nebo DELETE {DELETE} nebo {DEL}
ŠIPKA DOLŮ {DOWN}
END {END}
ZADEJTE {ENTER}nebo ~
ESC {ESC}
HELP {HELP}
HOME {HOME}
INS nebo INSERT {INSERT} nebo {INS}
ŠIPKA VLEVO {LEFT}
NUM LOCK {NUMLOCK}
STRÁNKA DOLŮ {PGDN}
Stránka nahoru {PGUP}
PRINT SCREEN {PRTSC} (vyhrazeno pro budoucí použití)
ŠIPKA VPRAVO {RIGHT}
SCROLL LOCK {SCROLLLOCK}
KARTĚ {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 {ODEČÍST}
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 zadejte jeden nebo více následujících kódů.

Klíč Code
SHIFT +
CTRL ^
ALT %

Chcete-li určit, že libovolná kombinace kláves SHIFT, CTRL a ALT by měla být podržína, zatímco je stisknuto několik dalších kláves, 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 stiskla klávesa SHIFT, použijte +(EC)." Pokud chcete zadat, aby se při stisknutí klávesy E stiskl stisknutá klávesa SHIFT, a potom C bez SHIFT, použijte "+EC".

Chcete-li zadat opakující se klíče, použijte formulář {číslo klíče}. Mezi klíč a číslo musíte umístit mezeru. Například {LEFT 42} znamená stisknutí klávesy ŠIPKA VLEVO 42krát; {h 10} znamená stisknutí klávesy H 10krát.

Poznámka:

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

Poznámka:

Třída SendKeys byla aktualizována pro rozhraní .NET Framework 3.0 tak, aby umožňovala jeho použití v aplikacích, které běží v systému Windows Vista. Vylepšené zabezpečení systému Windows Vista (označované jako Řízení uživatelských účtů nebo řízení uživatelských účtů) brání předchozí implementaci v očekávaném fungová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 časováním, ale je o něco 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 to selže, použije novou implementaci. V důsledku toho SendKeys se třída může chovat odlišně v různých operačních systémech. Navíc, když SendKeys třída používá novou implementaci, SendWait metoda nebude čekat na zpracování zpráv při jejich 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 , aby třída používala novou implementaci 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