SendKeys 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
提供傳送按鍵至應用程式的方法。
public ref class SendKeys
public class SendKeys
type SendKeys = class
Public Class SendKeys
- 繼承
-
SendKeys
範例
下列程式碼範例會示範如何使用 Send 方法。 若要執行此範例,請將下列程式碼貼到名為 Form1 的表單中,其中包含名為 Button1 的按鈕。 請確定按一下事件與此範例中的事件處理方法相關聯。 按鈕控制項的 TabIndex 屬性應該設定為 0。 執行範例時,按兩下表單以觸發按鈕的 Click 事件。
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
備註
使用 SendKeys 將按鍵和按鍵組合傳送至使用中的應用程式。 無法執行個體化這個類別。 若要將按鍵傳送至類別,並立即繼續進行程式流程,請使用 Send 。 若要等候按鍵啟動的任何進程,請使用 SendWait 。
每個索引鍵都以一或多個字元表示。 若要指定單一鍵盤字元,請使用字元本身。 例如,若要表示字母 A,請將字串 「A」 傳遞至 方法。 若要代表多個字元,請將每個額外的字元附加至其前面的字元。 若要表示字母 A、B 和 C,請將 參數指定為 「ABC」。
加號 (+) 、插入號 (^) 、百分比符號 (%) 、波浪 (~) ,以及括弧 () 對 具有特殊意義 SendKeys 。 若要指定其中一個字元,請將它括在大括弧 ({}) 中。 例如,若要指定加號,請使用 「{+}」。 若要指定大括弧字元,請使用 「{ {} 」 和 「 {} }」。 方括弧 ([ ]) 對 沒有特殊意義 SendKeys ,但您必須用大括弧括住。 在其他應用程式中,方括弧具有特殊意義,當動態資料交換 (DDE) 發生時,可能會相當重要。
警告
如果您的應用程式是設計成可搭配國際上現有的各種鍵盤來使用,則使用 Send 可能會產生無法預期的結果,應該予以避免。
若要指定當您按下按鍵時未顯示的字元,例如 ENTER 或 TAB,以及代表動作而非字元的按鍵,請使用下表中的程式碼。
Key | 程式碼 |
---|---|
退格鍵 | {BACKSPACE}、{BS}或 {BKSP} |
BREAK | {BREAK} |
CAPS LOCK | {CAPSLOCK} |
DEL 或 DELETE | {DELETE} 或 {DEL} |
DOWN ARROW | {DOWN} |
END | {END} |
ENTER | {ENTER} 或 ~ |
ESC | {ESC} |
HELP | {HELP} |
HOME | {HOME} |
INS 或 INSERT | {INSERT} 或 {INS} |
向左鍵 | {LEFT} |
NUM LOCK | {NUMLOCK} |
PAGE DOWN | {PGDN} |
PAGE UP | {PGUP} |
列印畫面 | {PRTSC} (保留供日後使用) |
向右鍵 | {RIGHT} |
SCROLL LOCK | {SCROLLLOCK} |
TAB | {TAB} |
向上鍵 | {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} |
鍵盤新增 | {ADD} |
鍵盤減去 | {SUBTRACT} |
鍵盤乘法 | {MULTIPLY} |
按鍵控制板除法 | {DIVIDE} |
若要指定與 SHIFT、CTRL 和 ALT 鍵的任何組合結合的按鍵,請在按鍵程式碼前面加上下列一或多個程式碼。
Key | 程式碼 |
---|---|
SHIFT | + |
CTRL | ^ |
ALT | % |
若要指定按下其他數個按鍵時,應該按住 SHIFT、CTRL 和 ALT 的任何組合,請將這些按鍵的程式碼括在括弧中。 例如,若要指定在按下 E 和 C 時按住 SHIFT,請使用 「+ (EC) 」。 若要指定在按下 E 時按住 SHIFT,後面接著 C 而不使用 SHIFT,請使用 「+EC」。
若要指定重複索引鍵,請使用 {key number} 格式。 您必須在索引鍵和數位之間放置空格。 例如,{LEFT 42} 表示按下向左鍵 42 次;{h 10} 表示按 H 10 次。
注意
因為沒有 Managed 方法可以啟動另一個應用程式,所以您可以在目前的應用程式中使用此類別,或使用原生Windows方法,例如 FindWindow
和 SetForegroundWindow
,強制將焦點放在其他應用程式上。
注意
SendKeys 類別已針對 .NET Framework 3.0 進行更新,以便能夠在 Windows Vista 上執行的應用程式中使用。 Windows Vista 的增強式安全性 (稱為使用者帳戶控制或 UAC) 會讓之前的實作無法如預期般運作。
SendKeys 類別容易受到時間問題的影響,某些開發人員必須解決這些問題。 更新的實作仍然容易受到時間問題的影響,但是速度會稍微快一些,而且可能需要對解決方法進行變更。 SendKeys 類別會先嘗試使用之前的實作;如果失敗,則使用新的實作。 因此, SendKeys 類別在不同的作業系統上可能會有不同的運作方式。 此外,當 SendKeys 類別使用新的實作時, SendWait 方法不會在將訊息傳送至另一個處理序時,等候處理這些訊息。
如果不論作業系統為何,應用程式都需要一致的行為,您可以強制 SendKeys 類別使用新的實作,方式是將下列應用程式設定加入 app.config 檔中。
<appSettings>
<add key="SendKeys" value="SendInput"/>
</appSettings>
若要強制 SendKeys 類別使用之前的實作,請改用 "JournalHook"
值。
方法
Equals(Object) |
判斷指定的物件是否等於目前的物件。 (繼承來源 Object) |
Flush() |
處理目前在訊息佇列中的所有 Windows 訊息。 |
GetHashCode() |
做為預設雜湊函式。 (繼承來源 Object) |
GetType() |
取得目前執行個體的 Type。 (繼承來源 Object) |
MemberwiseClone() |
建立目前 Object 的淺層複製。 (繼承來源 Object) |
Send(String) |
傳送按鍵至使用中的應用程式。 |
SendWait(String) |
傳送指定的按鍵至使用中的應用程式,然後等待訊息的處理。 |
ToString() |
傳回代表目前物件的字串。 (繼承來源 Object) |