SendKeys.Send(String) Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mengirim penekanan tombol ke aplikasi aktif.
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)
Parameter
- keys
- String
String penekanan tombol yang akan dikirim.
Pengecualian
Tidak ada aplikasi aktif untuk mengirim penekanan kunci.
keys tidak mewakili penekanan kunci yang valid.
Contoh
Contoh kode berikut menunjukkan cara menggunakan Send metode . Untuk menjalankan contoh, tempelkan kode berikut dalam formulir yang disebut Form1 yang berisi tombol yang disebut Button1. Pastikan peristiwa klik dikaitkan dengan metode penanganan peristiwa mereka dalam contoh ini. Properti kontrol TabIndex tombol harus diatur ke 0. Saat contoh berjalan, klik dua kali formulir untuk memicu peristiwa klik tombol.
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
Keterangan
Setiap kunci diwakili oleh satu atau beberapa karakter. Untuk menentukan satu karakter keyboard, gunakan karakter itu sendiri. Misalnya, untuk mewakili huruf A, teruskan string "A" ke metode . Untuk mewakili lebih dari satu karakter, tambahkan setiap karakter tambahan ke karakter sebelumnya. Untuk mewakili huruf A, B, dan C, tentukan parameter sebagai "ABC".
Tanda plus (+), tanda sisipan (^), tanda persen (%), tilde (~), dan tanda kurung () memiliki arti khusus untuk SendKeys. Untuk menentukan salah satu karakter ini, sertakan dalam tanda kurung kurawal ({}). Misalnya, untuk menentukan tanda plus, gunakan "{+}". Untuk menentukan karakter kurung kurawal, gunakan "{{}" dan "{}}". Tanda kurung siku ([ ]) tidak memiliki arti khusus untuk SendKeys, tetapi Anda harus mengapitnya dalam tanda kurung kurawal. Dalam aplikasi lain, tanda kurung memang memiliki arti khusus yang mungkin signifikan ketika pertukaran data dinamis (DDE) terjadi.
Perhatian
Jika aplikasi Anda ditujukan untuk penggunaan internasional dengan berbagai keyboard, penggunaan Send dapat menghasilkan hasil yang tidak dapat diprediksi dan harus dihindari.
Untuk menentukan karakter yang tidak ditampilkan saat Anda menekan tombol, seperti ENTER atau TAB, dan tombol yang mewakili tindakan daripada karakter, gunakan kode dalam tabel berikut.
| Kunci | Kode |
|---|---|
| BACKSPACE | {BACKSPACE}, {BS}, atau {BKSP} |
| BREAK | {BREAK} |
| CAPS LOCK | {CAPSLOCK} |
| DEL atau DELETE | {DELETE} atau {DEL} |
| PANAH BAWAH | {DOWN} |
| END | {END} |
| ENTER | {ENTER}atau ~ |
| ESC | {ESC} |
| HELP | {HELP} |
| HOME | {HOME} |
| INS atau INSERT | {INSERT} atau {INS} |
| PANAH KIRI | {LEFT} |
| NUM LOCK | {NUMLOCK} |
| HALAMAN BAWAH | {PGDN} |
| HALAMAN ATAS | {PGUP} |
| CETAK LAYAR | {PRTSC} (dicadangkan untuk digunakan di masa mendatang) |
| PANAH KANAN | {RIGHT} |
| KUNCI GULIR | {SCROLLLOCK} |
| TAB | {TAB} |
| PANAH ATAS | {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} |
| Tambahkan keypad | {ADD} |
| Pengurangan keypad | {SUBTRACT} |
| Perkalian keypad | {MULTIPLY} |
| Pembagian keypad | {DIVIDE} |
Untuk menentukan kunci yang dikombinasikan dengan kombinasi tombol SHIFT, CTRL, dan ALT apa pun, awali kode kunci dengan satu atau beberapa kode berikut.
| Kunci | Kode |
|---|---|
| SHIFT | + |
| CTRL | ^ |
| ALT | % |
Untuk menentukan bahwa kombinasi SHIFT, CTRL, dan ALT harus ditahan sementara beberapa tombol lain ditekan, sertakan kode untuk tombol tersebut dalam tanda kurung. Misalnya, untuk menentukan untuk menahan SHIFT saat E dan C ditekan, gunakan "+(EC)". Untuk menentukan untuk menahan SHIFT saat E ditekan, diikuti oleh C tanpa SHIFT, gunakan "+EC".
Untuk menentukan kunci berulang, gunakan formulir {nomor kunci}. Anda harus meletakkan spasi antara kunci dan angka. Misalnya, {LEFT 42} berarti tekan tombol PANAH KIRI 42 kali; {h 10} berarti tekan H 10 kali.
Nota
Karena tidak ada metode terkelola untuk mengaktifkan aplikasi lain, Anda dapat menggunakan kelas ini dalam aplikasi saat ini atau menggunakan metode Windows asli, seperti FindWindow dan SetForegroundWindow, untuk memaksa fokus pada aplikasi lain.
Nota
Kelas SendKeys telah diperbarui untuk .NET Framework 3.0 untuk mengaktifkan penggunaannya dalam aplikasi yang berjalan di Windows Vista. Peningkatan keamanan Windows Vista (dikenal sebagai Kontrol Akun Pengguna atau UAC) mencegah implementasi sebelumnya bekerja seperti yang diharapkan.
Kelas SendKeys ini rentan terhadap masalah waktu, yang harus dikerjakan oleh beberapa pengembang. Implementasi yang diperbarui masih rentan terhadap masalah waktu, tetapi sedikit lebih cepat dan mungkin memerlukan perubahan pada solusi. Kelas SendKeys mencoba menggunakan implementasi sebelumnya terlebih dahulu, dan jika itu gagal, menggunakan implementasi baru. Akibatnya, SendKeys kelas mungkin berperilaku berbeda pada sistem operasi yang berbeda. Selain itu, ketika SendKeys kelas menggunakan implementasi baru, SendWait metode tidak akan menunggu pesan diproses ketika dikirim ke proses lain.
Jika aplikasi Anda bergantung pada perilaku yang konsisten terlepas dari sistem operasi, Anda dapat memaksa SendKeys kelas untuk menggunakan implementasi baru dengan menambahkan pengaturan aplikasi berikut ke file app.config Anda.
<appSettings>
<add key="SendKeys" value="SendInput"/>
</appSettings>
Untuk memaksa SendKeys kelas menggunakan implementasi sebelumnya, gunakan nilai "JournalHook" sebagai gantinya.