Поделиться через


Keyboard.SendKeys Метод

Определение

Отправляет сведения о нажатии одной или нескольких клавиш в активное окно как при вводе с клавиатуры.

Перегрузки

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 удобен, если другое приложение должно завершить работу, прежде чем приложение сможет продолжить работу.

Примечание

Так как нет управляемого метода для активации другого приложения, вы можете использовать этот класс в текущем приложении, вручную выбрать окно для отправки ключей, или использовать методы API Windows, такие как FindWindow и SetForegroundWindow, для принудительного фокусировки на других приложениях. Дополнительные сведения см. в разделе Пошаговое руководство. Вызов API Windows.

Аргумент keys может указывать любую отдельную клавишу или любую клавишу в сочетании с ALT, CTRL или SHIFT (или любое сочетание этих клавиш). Каждая клавиша представлена одним или несколькими символами, например a для символа "a" или {ENTER} для клавиши ВВОД.

Чтобы объединить ключ с SHIFT, перед кодом + ключа следует использовать знак "плюс"). Чтобы объединить клавишу с CTRL, перед кодом клавиши ^ следует использовать (курсор). Чтобы объединить ключ с ALT, предшествуйте коду ключа ( % знак процента). Чтобы указать повторяющиеся ключи, используйте номер} ключа формы{. Необходимо поместить пробел между ключом и числом. Например, {LEFT 42} означает "нажмите клавишу СТРЕЛКА ВЛЕВО 42 раза", {h 10} а означает "нажмите "h" 10 раз".

В следующей таблице перечислены коды, которые можно использовать для указания символов, которые не отображаются при нажатии соответствующей клавиши (например, ВВОД или TAB).

Ключ Код
BACKSPACE {BACKSPACE} или {BS}
BREAK {BREAK}
CAPS LOCK {CAPSLOCK}
CLEAR {CLEAR}
DELETE {DELETE} или {DEL}
СТРЕЛКА ВНИЗ {DOWN}
END {END}
ВВОД (цифровая клавиатура) {ВВОД}
ВВОД ~
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 Да
Библиотека веб-элементов управления Нет
Службы 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 удобен, если другое приложение должно завершить работу, прежде чем приложение сможет продолжить работу.

Примечание

Так как нет управляемого метода для активации другого приложения, можно либо использовать этот класс в текущем приложении, вручную выбрать окно для отправки ключей, либо использовать методы API Windows, такие как FindWindow и SetForegroundWindow, чтобы принудительно сосредоточиться на других приложениях. Дополнительные сведения см. в разделе Пошаговое руководство. Вызов API Windows.

Аргумент keys может указать любую отдельную клавишу или любую клавишу в сочетании с ALT, CTRL или SHIFT (или любую комбинацию этих клавиш). Каждая клавиша представлена одним или несколькими символами, например a для символа "a" или {ENTER} клавиши ВВОД.

Чтобы объединить ключ с shift, перед кодом + ключа следует использовать знак "плюс". Чтобы совместить клавишу CTRL, предшествуйте коду клавиши ^ (курсор). Чтобы объединить ключ с ALT, перед кодом ключа следует % использовать (знак процента). Чтобы указать повторяющиеся ключи, используйте номер} ключа формы{. Необходимо поместить пробел между ключом и числом. Например, {LEFT 42} означает "нажмите клавишу СТРЕЛКА ВЛЕВО 42 раза"; {h 10} означает "нажмите "h" 10 раз".

В следующей таблице перечислены коды, которые можно использовать для указания символов, которые не отображаются при нажатии соответствующей клавиши (например, ВВОД или TAB).

Ключ Код
BACKSPACE {BACKSPACE} или {BS}
BREAK {BREAK}
CAPS LOCK {CAPSLOCK}
CLEAR {CLEAR}
DELETE {DELETE} или {DEL}
СТРЕЛКА ВНИЗ {DOWN}
END {END}
ВВОД (цифровая клавиатура) {ВВОД}
ВВОД ~
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 Да
Библиотека веб-элементов управления Нет
Службы Windows Да
Веб-сайт Нет

См. также раздел

Применяется к