SendKeys Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Poskytuje metody pro odesílání klávesových stisků do aplikace.
public ref class SendKeys
public class SendKeys
type SendKeys = class
Public Class SendKeys
- Dědičnost
-
SendKeys
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í tlačítka.
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
Slouží SendKeys k odesílání klávesových stisků a kombinací klávesových stisků do aktivní aplikace. Tuto třídu nelze vytvořit instanci. Chcete-li odeslat stisknutí klávesy do třídy a okamžitě pokračovat s tokem programu, použijte Send. Chcete-li počkat na všechny procesy spuštěné klávesou, použijte SendWait.
Každý klíč je reprezentován jedním nebo více znaky. Pokud chcete zadat jeden znak klávesnice, použijte samotný znak. Pokud například chcete znázorňovat 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 druhému znaku, který předchází. Pokud chcete 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 SendKeys. Pokud chcete zadat jeden z těchto znaků, uzavřete ho do závorek ({}). Pokud například chcete zadat znaménko plus, použijte {+}. Chcete-li zadat závorky, použijte {{}a "{}}". Závorky ([ ]) nemají žádný zvláštní význam SendKeys, ale musíte je uzavřít do 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, může být použití Send nepředvídatelných výsledků a mělo by se jim vyhnout.
Pokud chcete zadat znaky, které se nezobrazují, když stisknete klávesu, 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íč | 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} |
TISK OBRAZOVKY | {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} |
Chcete-li zadat klávesy v kombinaci 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 | % |
Chcete-li 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 stiskla klávesa SHIFT, použijte +(EC).". Pokud chcete zadat, aby se při stisknutí klávesy E stiskla 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}. Je nutné umístit mezeru mezi klíčem a číslem. Například {LEFT 42} znamená stisknutí klávesy Š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 buď v rámci aktuální aplikace, nebo použít nativní Windows metody, 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 použití v aplikacích, které běží na Windows Vista. Rozšířené zabezpečení systému Windows Vista (označované jako Řízení uživatelských účtů nebo UAC) 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, které museli někteří vývojáři obejít. Aktualizovaná implementace je stále náchylná k problémům s č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 to 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. 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"
.
Metody
Equals(Object) |
Určí, zda se zadaný objekt rovná aktuálnímu objektu. (Zděděno od Object) |
Flush() |
Zpracovává všechny zprávy Windows aktuálně ve frontě zpráv. |
GetHashCode() |
Slouží jako výchozí funkce hash. (Zděděno od Object) |
GetType() |
Type Získá aktuální instanci. (Zděděno od Object) |
MemberwiseClone() |
Vytvoří použádnou kopii aktuálního souboru Object. (Zděděno od Object) |
Send(String) |
Odešle stisknutí kláves do aktivní aplikace. |
SendWait(String) |
Odešle zadané klíče do aktivní aplikace a pak čeká na zpracování zpráv. |
ToString() |
Vrátí řetězec, který představuje aktuální objekt. (Zděděno od Object) |