SendKeys Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Bir uygulamaya tuş vuruşları göndermek için yöntemler sağlar.
public ref class SendKeys
public class SendKeys
type SendKeys = class
Public Class SendKeys
- Devralma
-
SendKeys
Örnekler
Aşağıdaki kod örneğinde yönteminin nasıl kullanılacağı gösterilmektedir Send . Örneği çalıştırmak için, aşağıdaki kodu Button1 adlı düğmeyi içeren Form1 adlı forma yapıştırın. Bu örnekte tıklama olaylarının olay işleme yöntemleriyle ilişkilendirildiğinden emin olun. Düğme denetiminin TabIndex özelliği 0 olarak ayarlanmalıdır. Örnek çalışırken, düğmenin tıklama olayını tetikmek için forma çift tıklayın.
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
Açıklamalar
Etkin uygulamaya tuş vuruşları ve tuş vuruşu bileşimleri göndermek için kullanın SendKeys . Bu sınıf örneği oluşturulamaz. Bir sınıfa tuş vuruşu göndermek ve programınızın akışına hemen devam etmek için kullanın Send. Tuş vuruşu tarafından başlatılan işlemleri beklemek için kullanın SendWait.
Her anahtar bir veya daha fazla karakterle temsil edilir. Tek bir klavye karakteri belirtmek için karakterin kendisini kullanın. Örneğin, A harfini temsil etmek için yöntemine "A" dizesini geçirin. Birden fazla karakteri temsil etmek için, her ek karakteri kendisinden öncekine ekleyin. A, B ve C harflerini temsil etmek için parametresini "ABC" olarak belirtin.
Artı işareti (+), şapka işareti (^), yüzde işareti (%), tilde (~) ve parantezlerin () için SendKeysözel anlamları vardır. Bu karakterlerden birini belirtmek için ayraç içine alın ({} ). Örneğin, artı işaretini belirtmek için "{+}" kullanın. Küme ayracı karakterleri belirtmek için "{{}" ve "{}}" kullanın. Köşeli ayraçların ([ ]) için SendKeysözel bir anlamı yoktur, ancak bunları ayraç içine almanız gerekir. Diğer uygulamalarda köşeli ayraçlar, dinamik veri değişimi (DDE) gerçekleştiğinde önemli olabilecek özel bir anlama sahiptir.
Dikkat
Uygulamanız çeşitli klavyelerle uluslararası kullanıma yönelikse, kullanımı Send öngörülemeyen sonuçlar verebilir ve bundan kaçınılmalıdır.
ENTER veya SEKME gibi bir tuşa ve karakterleri değil eylemleri temsil eden tuşlara bastığınızda görüntülenmez karakterleri belirtmek için aşağıdaki tabloda yer alan kodları kullanın.
Anahtar | Kod |
---|---|
BACKSPACE | {BACKSPACE}, {BS} veya {BKSP} |
MOLA | {BREAK} |
BÜYÜK HARF TUŞU | {CAPSLOCK} |
DEL veya DELETE | {DELETE} veya {DEL} |
AŞAĞI OK | {DOWN} |
END | {END} |
ENTER | {ENTER} veya ~ |
ESC | {ESC} |
YARDIM | {HELP} |
GİRİŞ SAYFASI | {HOME} |
INS veya INSERT | {INSERT} veya {INS} |
SOL OK | {LEFT} |
NUM LOCK | {NUMLOCK} |
PAGE DOWN | {PGDN} |
PAGE UP | {PGUP} |
PRINT SCREEN | {PRTSC} (gelecekte kullanım için ayrılmıştır) |
SAĞ OK | {RIGHT} |
KAYDıRMA KILIDI | {SCROLLLOCK} |
TAB | {TAB} |
YUKARI OK | {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} |
Tuş takımı ekleme | {ADD} |
Tuş takımı çıkarma | {SUBTRACT} |
Tuş takımı çarpma | {ÇARP} |
Tuş takımı bölme | {DIVIDE} |
SHIFT, CTRL ve ALT tuşlarının herhangi bir bileşimiyle birlikte tuşları belirtmek için, anahtar kodunun önüne aşağıdaki kodlardan birini veya daha fazlasını ekleyin.
Anahtar | Kod |
---|---|
ÜSTKRKT | + |
CTRL | ^ |
ALT | % |
Shift, CTRL ve ALT birleşimlerinin diğer tuşlara basıldığında kapalı tutulması gerektiğini belirtmek için, bu tuşların kodunu parantez içine alın. Örneğin, E ve C tuşlarına basıldığında SHIFT tuşunu basılı tutmayı belirtmek için "+(EC)" kullanın. E tuşuna basıldığında SHIFT tuşunu basılı tutmayı ve ardından SHIFT olmadan C tuşunu basılı tutmayı belirtmek için "+EC" kullanın.
Yinelenen anahtarları belirtmek için {key number} formunu kullanın. Anahtar ve sayı arasına boşluk koymanız gerekir. Örneğin, {LEFT 42}, SOL OK tuşuna 42 kez basıldığını gösterir; {h 10}, H tuşuna 10 kez basmak anlamına gelir.
Not
Başka bir uygulamayı etkinleştirmek için yönetilen bir yöntem olmadığından, bu sınıfı geçerli uygulama içinde kullanabilir veya ve gibi FindWindow
SetForegroundWindow
yerel Windows yöntemleri kullanarak diğer uygulamalara odaklanmaya zorlayabilirsiniz.
Not
sınıfıSendKeys, .NET Framework 3.0 için güncelleştirilerek Windows Vista üzerinde çalışan uygulamalarda kullanımını etkinleştirmiştir. Windows Vista'nın gelişmiş güvenliği (Kullanıcı Hesabı Denetimi veya UAC olarak bilinir) önceki uygulamanın beklendiği gibi çalışmasını engeller.
sınıfı SendKeys , bazı geliştiricilerin geçici bir çözüm bulmak zorunda kaldığı zamanlama sorunlarına duyarlıdır. Güncelleştirilmiş uygulama hala zamanlama sorunlarına duyarlıdır, ancak biraz daha hızlıdır ve geçici çözümlerde değişiklik yapılmasını gerektirebilir. SendKeys sınıfı önce önceki uygulamayı kullanmayı dener ve bu başarısız olursa yeni uygulamayı kullanır. Sonuç olarak, SendKeys sınıfı farklı işletim sistemlerinde farklı davranabilir. Ayrıca, SendKeys sınıf yeni uygulamayı kullandığında, yöntemi iletilerin SendWait başka bir işleme gönderildiğinde işlenmesini beklemez.
Uygulamanız işletim sisteminden bağımsız olarak tutarlı davranışlara dayanırsa, app.config dosyanıza aşağıdaki uygulama ayarını ekleyerek sınıfını yeni uygulamayı kullanmaya zorlayabilirsiniz SendKeys .
<appSettings>
<add key="SendKeys" value="SendInput"/>
</appSettings>
sınıfını SendKeys önceki uygulamayı kullanmaya zorlamak için bunun yerine değerini "JournalHook"
kullanın.
Yöntemler
Equals(Object) |
Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler. (Devralındığı yer: Object) |
Flush() |
İleti kuyruğunda bulunan tüm Windows iletilerini işler. |
GetHashCode() |
Varsayılan karma işlevi işlevi görür. (Devralındığı yer: Object) |
GetType() |
Type Geçerli örneğini alır. (Devralındığı yer: Object) |
MemberwiseClone() |
Geçerli Objectöğesinin sığ bir kopyasını oluşturur. (Devralındığı yer: Object) |
Send(String) |
Tuş vuruşlarını etkin uygulamaya gönderir. |
SendWait(String) |
Verilen anahtarları etkin uygulamaya gönderir ve sonra iletilerin işlenmesini bekler. |
ToString() |
Geçerli nesneyi temsil eden dizeyi döndürür. (Devralındığı yer: Object) |