Keyboard.SendKeys 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
將一或多個按鍵輸入傳送至使用中的視窗,就像在鍵盤上輸入一樣。
多載
| SendKeys(String) |
將一或多個按鍵輸入傳送至使用中的視窗,就像在鍵盤上輸入一樣。 |
| SendKeys(String, Boolean) |
將一或多個按鍵輸入傳送至使用中的視窗,就像在鍵盤上輸入一樣。 |
SendKeys(String)
將一或多個按鍵輸入傳送至使用中的視窗,就像在鍵盤上輸入一樣。
public:
void SendKeys(System::String ^ keys);
public void SendKeys (string keys);
member this.SendKeys : string -> unit
Public Sub SendKeys (keys As String)
參數
- keys
- String
String,定義要傳送的鍵。
例外狀況
發生使用者缺少必要權限的部分信任狀況。
範例
這個範例會使用 方法, My.Computer.Keyboard.SendKeys 將按鍵傳送至方法所 Shell 啟動的外部應用程式記事本應用程式。
Dim ProcID As Integer
' Start the Notepad application, and store the process id.
ProcID = Shell("NOTEPAD.EXE", AppWinStyle.NormalFocus)
' Activate the Notepad application.
AppActivate(ProcID)
' Send the keystrokes to the Notepad application.
My.Computer.Keyboard.SendKeys("I ", True)
My.Computer.Keyboard.SendKeys("♥", True)
My.Computer.Keyboard.SendKeys(" Visual Basic!", True)
' The sentence I ♥ Visual Basic! is printed on Notepad.
如果找不到具有所要求處理序識別碼的應用程式,則會引發 ArgumentException 例外狀況。
呼叫 Shell 方法需要完全信任 (SecurityException 類別) 。
備註
方法 My.Computer.Keyboard.SendKeys 提供與 Send 和 SendWait 方法類似的功能。
如果其他應用程式必須在應用程式繼續之前完成,則 wait 自變數非常有用。
注意
因為沒有 Managed 方法可啟動另一個應用程式,所以您可以在目前的應用程式中使用此類別、手動選取要傳送密鑰的視窗,或使用和 SetForegroundWindow等 FindWindow Windows API 方法強制將焦點放在其他應用程式上。 如需詳細資訊,請參閱逐步解說:呼叫 Windows API。
自 keys 變數可以指定任何單一按鍵或任何與 ALT、CTRL 或 SHIFT (或這些按鍵組合) 的任何組合。 每個索引鍵都會以一或多個字元表示,例如 a 字元 「a」 或 {ENTER} ENTER 鍵。
若要將按鍵與 SHIFT 結合,請在機碼前面加上 + (加號) 。 若要將按鍵與 CTRL 結合,請在按鍵程式代碼前面加上 ^ 插入號 (插入號) 。 若要將密鑰與 ALT 結合,請在機碼前面加上 % (百分比符號) 。 若要指定重複索引鍵,請使用表單 {索引鍵編號}。 您必須在 索引鍵 和 數字之間放置空格。 例如, {LEFT 42} 表示「按向左鍵 42 次」; {h 10} 表示「按 『h』 10 次」。
下表列出當您按下對應鍵 (,例如 ENTER 或 TAB) 時,可用來指定未顯示的字元代碼。
| Key | 程式碼 |
|---|---|
| 退格鍵 | {BACKSPACE} 或 {BS} |
| BREAK | {BREAK} |
| CAPS LOCK | {CAPSLOCK} |
| CLEAR | {CLEAR} |
| 刪除 | {DELETE} 或 {DEL} |
| DOWN ARROW | {DOWN} |
| END | {END} |
| ENTER (數字鍵控制板) | {ENTER} |
| ENTER | ~ |
| ESC | {ESCAPE} 或 {ESC} |
| HELP | {HELP} |
| HOME | {HOME} |
| INS | {INSERT} |
| 向左鍵 | {LEFT} |
| NUM LOCK | {NUMLOCK} |
| PAGE DOWN | {PGDN} |
| PAGE UP | {PGUP} |
| RETURN | {RETURN} |
| 向右鍵 | {RIGHT} |
| SCROLL LOCK | {SCROLLLOCK} |
| TAB | {TAB} |
| 向上鍵 | {UP} |
| F1 到 F15 | {F1} 到 {F15} |
依專案類型的可用性
| 專案類型 | 可用 |
|---|---|
| Windows 應用程式 | 是 |
| 類別庫 | 是 |
| 主控台應用程式 | 是 |
| Windows 控制項程式庫 | 是 |
| Web 控制項程式庫 | 否 |
| Windows 服務 | 是 |
| 網站 | 否 |
另請參閱
適用於
SendKeys(String, Boolean)
將一或多個按鍵輸入傳送至使用中的視窗,就像在鍵盤上輸入一樣。
public:
void SendKeys(System::String ^ keys, bool wait);
public void SendKeys (string keys, bool wait);
member this.SendKeys : string * bool -> unit
Public Sub SendKeys (keys As String, wait As Boolean)
參數
- keys
- String
String,定義要傳送的鍵。
- wait
- Boolean
選擇性。
Boolean,指定在應用程式繼續之前,是否等待按鍵得到處理。 預設為 True。
例外狀況
發生使用者缺少必要權限的部分信任狀況。
範例
這個範例會使用 方法, My.Computer.Keyboard.SendKeys 將按鍵傳送至方法所 Shell 啟動的外部應用程式記事本應用程式。
Dim ProcID As Integer
' Start the Notepad application, and store the process id.
ProcID = Shell("NOTEPAD.EXE", AppWinStyle.NormalFocus)
' Activate the Notepad application.
AppActivate(ProcID)
' Send the keystrokes to the Notepad application.
My.Computer.Keyboard.SendKeys("I ", True)
My.Computer.Keyboard.SendKeys("♥", True)
My.Computer.Keyboard.SendKeys(" Visual Basic!", True)
' The sentence I ♥ Visual Basic! is printed on Notepad.
如果找不到具有所要求處理序識別碼的應用程式,則會引發 ArgumentException 例外狀況。
呼叫 Shell 方法需要完全信任 (SecurityException 類別) 。
備註
方法 My.Computer.Keyboard.SendKeys 提供與 Send 和 SendWait 方法類似的功能。
如果其他應用程式必須在應用程式繼續之前完成,則 wait 自變數非常有用。
注意
因為沒有 Managed 方法可啟動另一個應用程式,所以您可以在目前的應用程式中使用此類別、手動選取要傳送密鑰的視窗,或使用和 SetForegroundWindow等 FindWindow Windows API 方法強制將焦點放在其他應用程式上。 如需詳細資訊,請參閱逐步解說:呼叫 Windows API。
自 keys 變數可以指定任何單一按鍵或任何與 ALT、CTRL 或 SHIFT (或這些按鍵組合) 的任何組合。 每個索引鍵都會以一或多個字元表示,例如 a 字元 「a」 或 {ENTER} ENTER 鍵。
若要將按鍵與 SHIFT 結合,請在機碼前面加上 + (加號) 。 若要將按鍵與 CTRL 結合,請在按鍵程式代碼前面加上 ^ 插入號 (插入號) 。 若要將密鑰與 ALT 結合,請在機碼前面加上 % (百分比符號) 。 若要指定重複索引鍵,請使用表單 {索引鍵編號}。 您必須在 索引鍵 和 數字之間放置空格。 例如, {LEFT 42} 表示「按向左鍵 42 次」; {h 10} 表示「按 『h』 10 次」。
下表列出當您按下對應鍵 (,例如 ENTER 或 TAB) 時,可用來指定未顯示的字元代碼。
| Key | 程式碼 |
|---|---|
| 退格鍵 | {BACKSPACE} 或 {BS} |
| BREAK | {BREAK} |
| CAPS LOCK | {CAPSLOCK} |
| CLEAR | {CLEAR} |
| 刪除 | {DELETE} 或 {DEL} |
| DOWN ARROW | {DOWN} |
| END | {END} |
| ENTER (數字鍵控制板) | {ENTER} |
| ENTER | ~ |
| ESC | {ESCAPE} 或 {ESC} |
| HELP | {HELP} |
| HOME | {HOME} |
| INS | {INSERT} |
| 向左鍵 | {LEFT} |
| NUM LOCK | {NUMLOCK} |
| PAGE DOWN | {PGDN} |
| PAGE UP | {PGUP} |
| RETURN | {RETURN} |
| 向右鍵 | {RIGHT} |
| SCROLL LOCK | {SCROLLLOCK} |
| TAB | {TAB} |
| 向上鍵 | {UP} |
| F1 到 F15 | {F1} 到 {F15} |
依專案類型的可用性
| 專案類型 | 可用 |
|---|---|
| Windows 應用程式 | 是 |
| 類別庫 | 是 |
| 主控台應用程式 | 是 |
| Windows 控制項程式庫 | 是 |
| Web 控制項程式庫 | 否 |
| Windows 服務 | 是 |
| 網站 | 否 |