Шаг 62 - Инструкция SendKeys

Передает активному окну одно или несколько нажатий клавиш, как если бы они были нажаты на клавиатуре.

SendKeys string[, wait]

Параметры
string
Обязательный. Строковое выражение, указывающее набор нажатий клавиш, который следует передать.
wait
Необязательный. Значение типа Boolean, указывающее режим ожидания. Если этот аргумент имеет значение False (значение по умолчанию), управление возвращается вызывающей процедуре сразу после завершения передачи нажатий клавиш. Если этот аргумент имеет значение True, управление возвращается вызывающей процедуре только после завершения обработки переданных нажатий клавиш.

Замечания
Для описания нажатий клавиш используются коды, состоящие из одного или нескольких символов. В качестве кода клавиши, соответствующей печатному символу, используется сам символ. Например, нажатию клавиши string "A". Для описания нескольких нажатий клавиш следует последовательно включить в string коды каждой клавиши. Например, последовательности клавиш A, B и C соответствует "ABC".
Символы плюс (+), "крышка" (^), знак процентов (%), тильда (~) и круглые скобки ( ) имеют специальное значение для инструкции SendKeys. Чтобы указать передачу одного из этих символов, следует заключить его в фигурные скобки ({}). Например, знаку плюс соответствует код {+}. Квадратные скобки ([ ]) не имеют специального значения для инструкции SendKeys, однако, их также необходимо заключать в фигурные скобки, поскольку они могут иметь специальное значение для других приложений, например, при динамическом обмене данными (DDE). Фигурным скобкам соответствуют коды {{} и {}}.
Для описания нажатий клавиш, которые не отображаются на экране (например, ENTER или TAB) или вызывают выполнение определенных действий, следует использовать перечисленные ниже коды:

BACKSPACE	{BACKSPACE}, {BS} или {BKSP}
BREAK	{BREAK}
CAPS LOCK	{CAPSLOCK}
DEL или DELETE	{DELETE} или {DEL}
СТРЕЛКА ВНИЗ	{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}
PRINT SCREEN	{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}

Для описания сочетания клавиши с клавишами SHIFT, CTRL или ALT следует указать один из перечисленных ниже кодов перед кодом обычной клавиши:

SHIFT	+
CTRL 	^
ALT	%

Для описания сочетаний нескольких клавиш с клавишами SHIFT, CTRL или ALT следует заключить коды этих клавиш в круглые скобки, а перед ними указать код, соответствующий клавише SHIFT, CTRL или ALT. Например, нажатию клавиш E и C при нажатой и удерживаемой клавише SHIFT соответствует "+(EC)". Для указания нажатия клавиши E при нажатой клавише SHIFT, за которым следует нажатие клавиши C без удерживания клавиши SHIFT, следует использовать код "+EC".
Для описания нескольких последовательных нажатий одной клавиши следует использовать синтаксис {клавиша число}. Пробел между элементами клавиша и число является обязательным. Например, {LEFT 42} означает "нажмите клавишу СТРЕЛКА ВЛЕВО 42 раза; {h 10} означает "нажмите клавишу H 10 раз".
Инструкция SendKeys предназначена для передачи нажатий клавиш только приложениям, разработанным для работы в среде Microsoft Windows. Кроме того, эта инструкция не позволяет передать нажатие клавиши PRINT SCREEN {PRTSC} ни в одно приложение.

Пример
В данном примере используется функция Shell для запуска приложения "Калькулятор", имеющийся в Microsoft Windows. Затем с помощью инструкции SendKeys имитируется нажатие клавиш для введения чисел и последующего выхода из калькулятора. Инструкция SendKeys не используется на Macintosh. (Для проработки примера вставьте его в процедуру с помощью буфера, а затем выполните эту процедуру. Поскольку инструкция AppActivate передает фокус приложению "Калькулятор", этот пример нельзя выполнить в пошаговом отладочном режиме.)

Dim ReturnValue, I
ReturnValue = Shell("CALC.EXE", 1)		' Запускает калькулятор.
AppActivate ReturnValue 			' Активизирует калькулятор.
For I = 1 To 100				' Организует цикл.
	SendKeys I & "{+}", True		' Передает данные калькулятору 
Next I					' для вычисления суммы.
SendKeys "=", True				' Окончательный результат.
SendKeys "%{F4}", True			' ALT+F4 закрывает калькулятор.

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 16.02.2002