SendKeys.Send(String) Metódus
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Billentyűleütéseket küld az aktív alkalmazásnak.
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)
Paraméterek
- keys
- String
A küldendő billentyűleütések sztringje.
Kivételek
Nincs aktív alkalmazás a billentyűleütések küldésére.
keys nem érvényes billentyűleütéseket jelöl.
Példák
Az alábbi példakód bemutatja a Send metódus használatát. A példa futtatásához illessze be a következő kódot egy Form1 nevű űrlapba, amely egy Button1 nevű gombot tartalmaz. Ebben a példában győződjön meg arról, hogy a kattintásesemények társítva vannak az eseménykezelési módszereikkel. A gombvezérlő tulajdonságának TabIndex 0 értékre kell állítania. Amikor a példa fut, kattintson duplán az űrlapra a gomb kattintási eseményének aktiválásához.
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
Megjegyzések
Minden kulcsot egy vagy több karakter jelöl. Egyetlen billentyűzetkarakte megadásához használja magát a karaktert. Ha például az A betűt szeretné jelölni, adja át az "A" sztringet a metódusnak. Ha egynél több karaktert szeretne ábrázolni, fűzze hozzá minden további karaktert az azt megelőző karakterhez. Az A, B és C betűk megjelenítéséhez adja meg az "ABC" paramétert.
A pluszjel (+), a gondviselés (^), a százalékjel (%), a tilde (~) és a zárójel () speciális jelentéssel bír.SendKeys Ezen karakterek egyikének megadásához csatolja a kapcsos zárójelek közé ({}). A pluszjel megadásához például használja a "{+}" értéket. Zárójelkarakterek megadásához használja a "{{}" és a "{}}" karaktert. A szögletes zárójeleknek ([ ]) nincs különleges jelentése SendKeys, de zárójelekbe kell őket foglalni. Más alkalmazásokban a szögletes zárójelek különleges jelentéssel rendelkeznek, amelyek jelentősek lehetnek a dinamikus adatcsere (DDE) esetén.
Figyelmeztetés
Ha az alkalmazás különböző billentyűzetekkel való nemzetközi használatra van szánva, a használata Send kiszámíthatatlan eredményeket eredményezhet, és kerülni kell.
Ha olyan karaktereket szeretne megadni, amelyek nem jelennek meg egy kulcs (például ENTER vagy TAB) lenyomásakor, valamint a karakterek helyett a műveleteket ábrázoló kulcsok megadásához használja az alábbi táblázatban szereplő kódokat.
| Key | Kód |
|---|---|
| BACKSPACE | {BACKSPACE}, {BS} vagy {BKSP} |
| BREAK | {BREAK} |
| Caps Lock billentyű | {CAPSLOCK} |
| DEL vagy DELETE | {DELETE} vagy {DEL} |
| LEFELÉ MUTATÓ NYÍL | {DOWN} |
| END | {END} |
| ENTER | {ENTER}vagy ~ |
| ESC | {ESC} |
| HELP | {HELP} |
| HOME | {HOME} |
| INS vagy INSERT | {INSERT} vagy {INS} |
| BALRA MUTATÓ NYÍL | {LEFT} |
| SZÁM ZÁROLÁSA | {NUMLOCK} |
| Oldal lefelé görgetés | {PGDN} |
| LAP FEL | {PGUP} |
| NYOMTATÁSI KÉPERNYŐ | {PRTSC} (jövőbeli használatra fenntartva) |
| JOBBRA MUTATÓ NYÍL | {RIGHT} |
| SCROLL LOCK | {SCROLLLOCK} |
| TABULÁTOR | {TAB} |
| FELLE mutató nyíl | {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} |
| Billentyűzet hozzáadása | {ADD} |
| Billentyűzet kivonása | {KIVONÁS} |
| Billentyűpárok szorzása | {SZORZÁS} |
| Billentyűpárok osztása | {DIVIDE} |
A SHIFT, a CTRL és az ALT billentyűkombinációval kombinált kulcsok megadásához a kulcskódot az alábbi kódok valamelyikével kell megelőznie.
| Key | Kód |
|---|---|
| SHIFT | + |
| CTRL | ^ |
| ALT | % |
Ha meg szeretné határozni, hogy a SHIFT, a CTRL és az ALT billentyűkombinációt lenyomva kell-e tartani, miközben több más billentyű is be van nyomva, zárójelbe kell helyeznie a kulcsok kódját. Ha például meg szeretné adni, hogy az E és C billentyű lenyomása közben tartsa lenyomva a SHIFT billentyűt, használja a "+(EC)" értéket. Ha meg szeretné adni, hogy az E billentyű lenyomása közben tartsa lenyomva a SHIFT billentyűt, majd a C billentyűt a SHIFT nélkül, használja a "+EC" értéket.
Ismétlődő kulcsok megadásához használja a(z) {key number} űrlapot. Szóközt kell elhelyeznie a kulcs és a szám között. A {LEFT 42} például azt jelenti, hogy 42-szer lenyomja a BALRA nyílbillentyűt; {h 10} azt jelenti, hogy 10-szer nyomja le a H billentyűt.
Note
Mivel nincs felügyelt módszer egy másik alkalmazás aktiválására, használhatja ezt az osztályt az aktuális alkalmazásban, vagy használhat natív Windows metódusokat, például FindWindow és SetForegroundWindow, hogy más alkalmazásokra összpontosítson.
Note
A SendKeys osztály frissült a .NET Framework 3.0-hoz, hogy az Windows Vista futó alkalmazásokban is használható legyen. A Windows Vista (más néven felhasználói fiókok felügyelete vagy UAC) fokozott biztonsága megakadályozza, hogy az előző implementáció a várt módon működjenek.
Az SendKeys osztály érzékeny az időzítési problémákra, amelyeket néhány fejlesztőnek meg kellett oldania. A frissített implementáció továbbra is érzékeny az időzítéssel kapcsolatos problémákra, de kissé gyorsabb, és szükségessé teheti a kerülő megoldások módosítását. Az SendKeys osztály először az előző implementációt próbálja használni, és ha ez nem sikerül, az új implementációt használja. Ennek eredményeképpen az SendKeys osztály eltérően viselkedhet a különböző operációs rendszereken. Emellett, amikor az SendKeys osztály az új implementációt használja, a SendWait metódus nem várja meg az üzenetek feldolgozását, amikor egy másik folyamatba küldik őket.
Ha az alkalmazás az operációs rendszertől függetlenül konzisztens viselkedésre támaszkodik, kényszerítheti az SendKeys osztályt az új implementáció használatára, ha hozzáadja az alábbi alkalmazásbeállítást a app.config fájlhoz.
<appSettings>
<add key="SendKeys" value="SendInput"/>
</appSettings>
Ha az osztályt az SendKeys előző implementáció használatára szeretné kényszeríteni, használja inkább az értéket "JournalHook" .