System windows forms sendkeys sendwait

Send Keys. Send Wait(String) Метод

Определение

Отправляет данные об указанных клавишах активному приложению и ожидает окончания обработки сообщений. Sends the given keys to the active application, and then waits for the messages to be processed.

Параметры

Строка, содержащая отправляемые данные о нажатиях клавиш. The string of keystrokes to send.

Комментарии

Используйте SendWait для отправки нажатий клавиш или сочетаний клавиш в активное приложение и ожидания обработки сообщений о нажатии клавиш. Use SendWait to send keystrokes or combinations of keystrokes to the active application and wait for the keystroke messages to be processed. Этот метод можно использовать для отправки в приложение нажатий клавиш и ожидания завершения всех процессов, запущенных нажатиями клавиш. You can use this method to send keystrokes to an application and wait for any processes that are started by the keystrokes to be completed. Это может быть важно, если другое приложение должно завершиться до того, как приложение сможет продолжить работу. This can be important if the other application must finish before your application can continue.

Поскольку нет управляемого метода для активации другого приложения, можно либо использовать этот класс в текущем приложении, либо использовать собственные методы Windows, такие как FindWindow и SetForegroundWindow , чтобы принудительно сосредоточиться на других приложениях. Because there is no managed method to activate another application, you can either use this class within the current application or use native Windows methods, such as FindWindow and SetForegroundWindow , to force focus on other applications.

Класс SendKeys был обновлен в .NET Framework 3.0, что позволило использовать его в приложениях, работающих в Windows Vista. The SendKeys class has been updated for the .NET Framework 3.0 to enable its use in applications that run on Windows Vista. Усиленная система безопасности Windows Vista (известная как контроль учетных записей или UAC) не позволяет предыдущей реализации работать должным образом. The enhanced security of Windows Vista (known as User Account Control or UAC) prevents the previous implementation from working as expected.

Класс SendKeys подвержен проблемам со временем, которые пришлось решать некоторым разработчикам. The SendKeys class is susceptible to timing issues, which some developers have had to work around. Обновленная реализация по-прежнему подвержена этим проблемам, но она работает немного быстрее, поэтому существующие решения может потребоваться переработать. The updated implementation is still susceptible to timing issues, but is slightly faster and may require changes to the workarounds. Класс SendKeys сначала пытается использовать предыдущую реализацию, и если это не удается, использует новую реализацию. The SendKeys class tries to use the previous implementation first, and if that fails, uses the new implementation. В результате класс SendKeys может работать по-разному в разных операционных системах. As a result, the SendKeys class may behave differently on different operating systems. Кроме того, при использовании новой реализации класса SendKeys метод SendWait не будет дожидаться обработки сообщений, если они отправляются другому процессу. Additionally, when the SendKeys class uses the new implementation, the SendWait method will not wait for messages to be processed when they are sent to another process.

Если необходимо обеспечить согласованное поведение приложения независимо от операционной системы, можно заставить класс SendKeys использовать новую реализацию, добавив указанный ниже параметр приложения в файл app.config. If your application relies on consistent behavior regardless of the operating system, you can force the SendKeys class to use the new implementation by adding the following application setting to your app.config file.

Для принудительного использования классом SendKeys предыдущей реализации задайте значение «JournalHook» . To force the SendKeys class to use the previous implementation, use the value «JournalHook» instead.

Читайте также:  Как переустановить windows при загрузке

Send Keys. Send(String) Метод

Определение

Посылает сообщения о нажатии клавиш активному приложению. Sends keystrokes to the active application.

Параметры

Строка, содержащая отправляемые данные о нажатиях клавиш. The string of keystrokes to send.

Исключения

Отсутствует активное приложение для отправки сообщений о нажатии клавиш. There is not an active application to send keystrokes to.

Объект keys не представляет допустимые сообщения о нажатии клавиш. keys does not represent valid keystrokes

Примеры

В следующем примере кода показано, как использовать Send метод. Чтобы выполнить пример, вставьте следующий код в форму с именем Form1, содержащую кнопку с именем Button1. The following code example demonstrates how to use the Send method.To run the example, paste the following code in a form called Form1 containing a button called Button1. Убедитесь, что события щелчка связаны с методами обработки событий в этом примере. Ensure the click events are associated with their event-handling methods in this example. Свойству элемента управления «Кнопка» TabIndex должно быть присвоено значение 0. The button control’s TabIndex property should be set to 0. При выполнении примера дважды щелкните форму, чтобы активировать событие нажатия кнопки. When the example is running, double-click the form to trigger the button’s click event.

Комментарии

Каждый ключ представлен одним или несколькими символами. Each key is represented by one or more characters. Чтобы указать одиночный символ клавиатуры, используйте сам символ. To specify a single keyboard character, use the character itself. Например, чтобы представить букву A, передайте в метод строку «A». For example, to represent the letter A, pass in the string «A» to the method. Чтобы представить более одного символа, добавьте каждый дополнительный символ в предыдущий. To represent more than one character, append each additional character to the one preceding it. Чтобы представить буквы A, B и C, укажите для параметра значение «ABC». To represent the letters A, B, and C, specify the parameter as «ABC».

Знак плюс (+), символ (^), знак процента (%), тильда (

) и круглые скобки () имеют специальное значение SendKeys . The plus sign (+), caret (^), percent sign (%), tilde (

), and parentheses () have special meanings to SendKeys. Чтобы указать один из этих символов, заключите его в фигурные скобки ( <> ). To specify one of these characters, enclose it within braces (<>). Например, чтобы указать знак «плюс», используйте «<+>«. For example, to specify the plus sign, use «<+>«. Чтобы указать символы фигурных скобок, используйте » < <>» и » <> >». To specify brace characters, use «<<>» and «<>>». Квадратные скобки ([]) не имеют особого смысла SendKeys , но их необходимо заключить в фигурные скобки. Brackets ([ ]) have no special meaning to SendKeys, but you must enclose them in braces. В других приложениях скобки имеют специальное значение, которое может быть значительным при выполнении динамического обмена данными (DDE). In other applications, brackets do have a special meaning that might be significant when dynamic data exchange (DDE) occurs.

Если приложение предназначено для международного использования с различными клавиатурами, применение метода Send может иметь непредсказуемые результаты и его следует избегать. If your application is intended for international use with a variety of keyboards, the use of Send could yield unpredictable results and should be avoided.

Чтобы указать символы, которые не отображаются при нажатии клавиши, например ENTER или TAB, а также ключи, представляющие действия, а не символы, используйте коды, приведенные в следующей таблице. To specify characters that aren’t displayed when you press a key, such as ENTER or TAB, and keys that represent actions rather than characters, use the codes in the following table.

Читайте также:  Windows чем открыть bz2 windows
Ключ Key Код Code
BACKSPACE BACKSPACE , или <БКСП>, , or
BREAK BREAK РАЗБИЕНИ
Caps Lock CAPS LOCK
DEL или DELETE DEL or DELETE или or
СТРЕЛКА ВНИЗ DOWN ARROW КРЫВАЮЩЕЙ
END END КОНЦЕ
ВВОД ENTER или
ESC ESC ESC
HELP HELP ПОЗВОЛЯЮТ
HOME HOME ДОМОМ
INS или INSERT INS or INSERT или or
СТРЕЛКА ВЛЕВО LEFT ARROW СЛЕВА
NUM LOCK NUM LOCK NumLock
PAGE DOWN PAGE DOWN Page Down
PAGE UP PAGE UP Page Up
ПЕЧАТЬ ЭКРАНА PRINT SCREEN <ПРТСК>(зарезервировано для будущего использования) (reserved for future use)
СТРЕЛКА ВПРАВО RIGHT ARROW СПРАВА
ПРОКРУТИТЬ БЛОКИРОВКУ SCROLL LOCK
TAB TAB ВКЛАДКЕ
СТРЕЛКА ВВЕРХ UP ARROW КРЫВАЮЩЕМСЯ
F1 F1 Справоч
F2 F2 F2
F3 F3 F
F4 F4 Клавиш
F5 F5 Жмем
F6 F6 Нажат
F7 F7 7
F8 F8 8
F9 F9 F9
F10 F10 F10
F11 F11 F11
F12 F12 F12
F13 F13
F14 F14
F15 F15
F16 F16 F16
Добавление клавиатуры Keypad add ВКЛЮЧИТЬ
Вычитание с клавиатуры Keypad subtract ВЫЧЕСТЬ
Умножение клавиатуры Keypad multiply ПЕРЕМНОЖАЕМЫХ
Разделительная клавиша Keypad divide ДЕЛЕНИЕ

Чтобы указать ключи в сочетании с любым сочетанием клавиш SHIFT, CTRL и ALT, перед кодом клавиши укажите один или несколько из следующих кодов. To specify keys combined with any combination of the SHIFT, CTRL, and ALT keys, precede the key code with one or more of the following codes.

Ключ Key Код Code
МЕСТИ SHIFT +
КОМБИНАЦИ CTRL ^
ALT ALT %

Чтобы указать, что сочетание клавиш SHIFT, CTRL и ALT должно удерживаться при нажатии нескольких других клавиш, заключите код этих клавиш в круглые скобки. To specify that any combination of SHIFT, CTRL, and ALT should be held down while several other keys are pressed, enclose the code for those keys in parentheses. Например, чтобы указать, чтобы при нажатии клавиш «E» и «C» использовались клавиши SHIFT, используйте «+ (EC)». For example, to specify to hold down SHIFT while E and C are pressed, use «+(EC)». Чтобы указать, что при нажатии клавиши «E», а затем C без СДВИГа, следует использовать «+ EC». To specify to hold down SHIFT while E is pressed, followed by C without SHIFT, use «+EC».

Чтобы указать повторяющиеся ключи, используйте форму <номер ключа>. To specify repeating keys, use the form . Необходимо поставить пробел между ключом и числом. You must put a space between key and number. Например, означает нажатие клавиши со стрелкой влево 42 раз; означает нажатие клавиши H 10 раз. For example, means press the LEFT ARROW key 42 times; means press H 10 times.

Поскольку нет управляемого метода для активации другого приложения, можно либо использовать этот класс в текущем приложении, либо использовать собственные методы Windows, такие как FindWindow и SetForegroundWindow , чтобы принудительно сосредоточиться на других приложениях. Because there is no managed method to activate another application, you can either use this class within the current application or use native Windows methods, such as FindWindow and SetForegroundWindow , to force focus on other applications.

Класс SendKeys был обновлен в .NET Framework 3.0, что позволило использовать его в приложениях, работающих в Windows Vista. The SendKeys class has been updated for the .NET Framework 3.0 to enable its use in applications that run on Windows Vista. Усиленная система безопасности Windows Vista (известная как контроль учетных записей или UAC) не позволяет предыдущей реализации работать должным образом. The enhanced security of Windows Vista (known as User Account Control or UAC) prevents the previous implementation from working as expected.

Класс SendKeys подвержен проблемам со временем, которые пришлось решать некоторым разработчикам. The SendKeys class is susceptible to timing issues, which some developers have had to work around. Обновленная реализация по-прежнему подвержена этим проблемам, но она работает немного быстрее, поэтому существующие решения может потребоваться переработать. The updated implementation is still susceptible to timing issues, but is slightly faster and may require changes to the workarounds. Класс SendKeys сначала пытается использовать предыдущую реализацию, и если это не удается, использует новую реализацию. The SendKeys class tries to use the previous implementation first, and if that fails, uses the new implementation. В результате класс SendKeys может работать по-разному в разных операционных системах. As a result, the SendKeys class may behave differently on different operating systems. Кроме того, при использовании новой реализации класса SendKeys метод SendWait не будет дожидаться обработки сообщений, если они отправляются другому процессу. Additionally, when the SendKeys class uses the new implementation, the SendWait method will not wait for messages to be processed when they are sent to another process.

Если необходимо обеспечить согласованное поведение приложения независимо от операционной системы, можно заставить класс SendKeys использовать новую реализацию, добавив указанный ниже параметр приложения в файл app.config. If your application relies on consistent behavior regardless of the operating system, you can force the SendKeys class to use the new implementation by adding the following application setting to your app.config file.

Для принудительного использования классом SendKeys предыдущей реализации задайте значение «JournalHook» . To force the SendKeys class to use the previous implementation, use the value «JournalHook» instead.

Send Keys. Send Wait(String) Method

Definition

Sends the given keys to the active application, and then waits for the messages to be processed.

Parameters

The string of keystrokes to send.

Remarks

Use SendWait to send keystrokes or combinations of keystrokes to the active application and wait for the keystroke messages to be processed. You can use this method to send keystrokes to an application and wait for any processes that are started by the keystrokes to be completed. This can be important if the other application must finish before your application can continue.

Because there is no managed method to activate another application, you can either use this class within the current application or use native Windows methods, such as FindWindow and SetForegroundWindow , to force focus on other applications.

The SendKeys class has been updated for the .NET Framework 3.0 to enable its use in applications that run on Windows Vista. The enhanced security of Windows Vista (known as User Account Control or UAC) prevents the previous implementation from working as expected.

The SendKeys class is susceptible to timing issues, which some developers have had to work around. The updated implementation is still susceptible to timing issues, but is slightly faster and may require changes to the workarounds. The SendKeys class tries to use the previous implementation first, and if that fails, uses the new implementation. As a result, the SendKeys class may behave differently on different operating systems. Additionally, when the SendKeys class uses the new implementation, the SendWait method will not wait for messages to be processed when they are sent to another process.

If your application relies on consistent behavior regardless of the operating system, you can force the SendKeys class to use the new implementation by adding the following application setting to your app.config file.

To force the SendKeys class to use the previous implementation, use the value «JournalHook» instead.

Читайте также:  Mac os xp sp3
Оцените статью