Ввод с клавиатуры — Win32 apps
Twitter LinkedIn Facebook Адрес электронной почты- Статья
В этом разделе описывается, как система создает ввод с клавиатуры и как приложение получает и обрабатывает эти входные данные.
в этом разделе
| Имя | Описание |
|---|---|
| Сведения о вводе с клавиатуры | Обсуждение ввода с клавиатуры. |
| Использование ввода с клавиатуры | Охватывает задачи, связанные с вводом с клавиатуры. |
| Справочник по вводу с клавиатуры | Содержит ссылку на API. |
Функции
| Имя | Описание |
|---|---|
| ActivateKeyboardLayout | Задает идентификатор языкового стандарта ввода (ранее называемый дескриптором раскладки клавиатуры) для вызывающего потока или текущего процесса. Идентификатор языкового стандарта ввода задает языковой стандарт, а также физический макет клавиатуры. |
| BlockInput | Блокирует доступ к приложениям событий ввода с помощью клавиатуры и мыши. |
| EnableWindow | Включает или отключает ввод с помощью мыши и клавиатуры для указанного окна или элемента управления. Если входные данные отключены, окно не получает такие входные данные, как щелчки мыши и нажатия клавиш. Если входные данные включены, окно получает все входные данные. |
| GetActiveWindow | Извлекает дескриптор окна в активное окно, подключенное к очереди сообщений вызывающего потока. |
| GetAsyncKeyState | Определяет, находится ли клавиша вверх или вниз во время вызова функции и была ли нажатие клавиши после предыдущего вызова GetAsyncKeyState. |
| GetFocus | Извлекает дескриптор в окно с фокусом клавиатуры, если окно подключено к очереди сообщений вызывающего потока. |
| GetKeyboardLayout | Извлекает идентификатор активного языкового стандарта ввода (прежнее название — раскладка клавиатуры) для указанного потока. Если параметр idThread равен нулю, возвращается входной языковой стандарт для активного потока. |
| GetKeyboardLayoutList | Извлекает входные идентификаторы языкового стандарта (ранее называемые дескрипторами раскладки клавиатуры), соответствующие текущему набору языковых стандартов ввода в системе. Функция копирует идентификаторы в указанный буфер. |
| GetKeyboardLayoutName | Извлекает имя идентификатора языкового стандарта активного ввода (прежнее название — раскладка клавиатуры). |
| GetKeyboardState | Копирует состояние 256 виртуальных ключей в указанный буфер. |
| GetKeyNameText | Извлекает строку, представляющую имя ключа. |
| GetKeyState | Извлекает состояние указанного виртуального ключа. Состояние указывает, находится ли клавиша вверх, вниз или переключается (вкл., отключается при каждом нажатии клавиши). |
| GetLastInputInfo | Извлекает время последнего входного события. |
| IsWindowEnabled | Определяет, включено ли указанное окно для ввода с помощью мыши и клавиатуры. |
| LoadKeyboardLayout | Загружает новый идентификатор языкового стандарта ввода (прежнее название — раскладка клавиатуры) в систему. Одновременно можно загрузить несколько входных идентификаторов языкового стандарта, но одновременно активируется только один процесс. Загрузка нескольких входных идентификаторов языкового стандарта позволяет быстро переключаться между ними. |
| MapVirtualKey | Преобразует (сопоставляет) код виртуального ключа в код сканирования или значение символа или преобразует код сканирования в код виртуального ключа. Чтобы указать дескриптор раскладки клавиатуры для перевода указанного кода, используйте функцию MapVirtualKeyEx . |
| MapVirtualKeyEx | Сопоставляет код виртуального ключа с кодом сканирования или символьным значением или преобразует код сканирования в код виртуального ключа. Функция преобразует коды с помощью языка ввода и идентификатора языкового стандарта ввода. |
| OemKeyScan | Сопоставляет коды OEMASCII от 0 до 0x0FF в коды сканирования OEM и состояния смены. Функция предоставляет сведения, позволяющие программе отправлять текст OEM в другую программу, имитируя ввод с клавиатуры. |
| RegisterHotKey | Определяет горячий ключ на уровне системы. |
| SendInput | Синтезирует нажатия клавиш, движения мыши и нажатия кнопки. |
| SetActiveWindow | Активирует окно. Окно должно быть подключено к очереди сообщений вызывающего потока. |
| SetFocus | Задает фокус клавиатуры для указанного окна. Окно должно быть подключено к очереди сообщений вызывающего потока. |
| SetKeyboardState | Копирует 256-байтовый массив состояний клавиши клавиатуры в таблицу ввода-состояния клавиатуры вызывающего потока.![]() |
| ToAscii | Преобразует указанный код виртуального ключа и состояние клавиатуры в соответствующий символ или символ. Функция преобразует код с помощью языка ввода и физической раскладки клавиатуры, определяемой дескриптором раскладки клавиатуры. Чтобы указать дескриптор раскладки клавиатуры для перевода указанного кода, используйте функцию ToAsciiEx . |
| ToAsciiEx | Преобразует указанный код виртуального ключа и состояние клавиатуры в соответствующий символ или символ. Функция преобразует код с помощью языка ввода и физической раскладки клавиатуры, определяемой идентификатором языкового стандарта ввода. |
| ToUnicode | Преобразует указанный код виртуального ключа и состояние клавиатуры в соответствующий символ Юникода или символы. Чтобы указать дескриптор раскладки клавиатуры для перевода указанного кода, используйте функцию ToUnicodeEx . |
| ToUnicodeEx | Преобразует указанный код виртуального ключа и состояние клавиатуры в соответствующий символ Юникода или символы. |
| UnloadKeyboardLayout | Выгружает входной идентификатор языкового стандарта (прежнее название — раскладка клавиатуры). |
| UnregisterHotKey | Освобождает горячий ключ, ранее зарегистрированный вызывающим потоком. |
| VkKeyScanEx | Преобразует символ в соответствующий код виртуального ключа и состояние смены. Функция преобразует символ с помощью языка ввода и физической раскладки клавиатуры, определяемой идентификатором языкового стандарта ввода. |
Следующие функции устарели.
| Функция | Описание |
|---|---|
| GetKBCodePage | Извлекает текущую кодовую страницу. |
| keybd_event | Синтезирует нажатие клавиш. Система может использовать такой синтезированный нажатие клавиши для создания WM_KEYUP или WM_KEYDOWN сообщения. Обработчик прерываний драйвера клавиатуры вызывает функцию keybd_event . |
| VkKeyScan | Преобразует символ в соответствующий код виртуального ключа и состояние shift для текущей клавиатуры. |
Сообщения
| name | Описание |
|---|---|
| WM_GETHOTKEY | Определяет горячий ключ, связанный с окном. |
| WM_SETHOTKEY | Связывает горячий ключ с окном. Когда пользователь нажимает горячий ключ, система активирует окно. |
Уведомления
| Имя | Описание |
|---|---|
| WM_ACTIVATE | Отправляется как в активированное окно, так и в отключаемом окне. Если окна используют ту же очередь ввода, сообщение отправляется синхронно, сначала в процедуру окна деактивации окна верхнего уровня, а затем в процедуру окна, активируемого верхнего уровня. Если окна используют разные входные очереди, сообщение отправляется асинхронно, поэтому окно активируется немедленно. |
| WM_APPCOMMAND | Уведомляет окно о том, что пользователь создал событие команды приложения, например, нажав кнопку «Команда приложения» с помощью мыши или введя клавишу команды приложения на клавиатуре. |
| WM_CHAR | Размещено в окне с фокусом клавиатуры при переводе WM_KEYDOWN сообщения функцией TranslateMessage . Сообщение WM_CHAR содержит код символа нажатой клавиши. |
| WM_DEADCHAR | Размещено в окне с фокусом клавиатуры при переводе сообщения WM_KEYUP функцией TranslateMessage . WM_DEADCHAR указывает код символа, созданный мертвым ключом. Мертвый ключ — это ключ, который создает символ, например umlaut (двойная точка), который объединяется с другим символом для формирования составного символа. Например, символ umlaut-O () создается путем ввода мертвого ключа для символа umlaut, а затем ввода клавиши O. |
| WM_HOTKEY | Публикуется, когда пользователь нажимает горячий ключ, зарегистрированный функцией RegisterHotKey . Сообщение размещается в верхней части очереди сообщений, связанной с потоком, который зарегистрировал горячий ключ. |
| WM_KEYDOWN | Размещено в окне с фокусом клавиатуры при нажатии несистемной клавиши. Несистемный ключ — это клавиша, которая нажимается, если клавиша ALT не нажата. |
| WM_KEYUP | Размещено в окне с фокусом клавиатуры при освобождении несистемного ключа. Несистемная клавиша — это клавиша, которая нажимается, когда клавиша ALT не нажата, или клавиша, которая нажимается при фокусе клавиатуры в окне. |
| WM_KILLFOCUS | Отправлено в окно непосредственно перед потерей фокуса клавиатуры. |
| WM_SETFOCUS | Отправлено в окно после того, как он получил фокус клавиатуры. |
| WM_SYSDEADCHAR | Отправляется в окно с фокусом клавиатуры при переводе сообщения WM_SYSKEYDOWN функцией TranslateMessage . WM_SYSDEADCHAR указывает код символа системного мертвого ключа, то есть мертвую клавишу, которая нажимается при удерживая клавишу ALT. |
| WM_SYSKEYDOWN | Размещено в окне с фокусом клавиатуры, когда пользователь нажимает клавишу F10 (которая активирует строку меню) или удерживает клавишу ALT, а затем нажимает другую клавишу. Это также происходит, если в настоящее время окно не имеет фокуса клавиатуры; в этом случае сообщение WM_SYSKEYDOWN отправляется в активное окно. Окно, получающее сообщение, может различать эти два контекста, проверив код контекста в параметре lParam . |
| WM_SYSKEYUP | Размещено в окне с фокусом клавиатуры, когда пользователь отпускает клавишу, которая была нажата, пока удерживалась клавиша ALT. Это также происходит, если в настоящее время окно не имеет фокуса клавиатуры; В этом случае сообщение WM_SYSKEYUP отправляется в активное окно. Окно, получающее сообщение, может различать эти два контекста, проверив код контекста в параметре lParam . |
| WM_UNICHAR | Размещено в окне с фокусом клавиатуры при переводе WM_KEYDOWN сообщения функцией TranslateMessage . Сообщение WM_UNICHAR содержит код символа нажатой клавиши. |
Структуры
| Имя | Описание |
|---|---|
| HARDWAREINPUT | Содержит сведения об имитированном сообщении, созданном устройством ввода, кроме клавиатуры или мыши. |
| ВХОД | Содержит сведения, используемые для синтеза событий ввода, таких как нажатия клавиш, перемещение мыши и щелчки мышью. |
| KEYBDINPUT | Содержит сведения о событии имитированной клавиатуры. |
| LASTINPUTINFO | Содержит время последнего ввода. |
| MOUSEINPUT | Содержит сведения о имитированном событии мыши. |
Константы
| Имя | Описание |
|---|---|
| Коды виртуальных ключей | Символьные имена констант, шестнадцатеричные значения и эквиваленты мыши или клавиатуры для кодов виртуальных ключей, используемых системой. Коды перечислены в числовом порядке. |
См. также
- Ввод с клавиатуры
- Сведения о вводе с клавиатуры
Ввод значений с клавиатуры — Scratch
С помощью блока скрипт может задать вопрос, на который пользователь может ответить,введя данные с клавиатуры. При выполнении блока выполнение скрипта приостанавливается, выноска с вопросом выводится рядом с соответствующим спрайтом и снизу на сцене пявляется поле для ввода текста, в которое можно с клавиатуры набрать требуемое значение (текст или число). После нажатия на клавишу Enter или на флажок справа от поля ввода блок получает введенное пользователем значение и работа скрипта продолжается. Значение блока можно рассматривать как глобальную переменную специального вида, которая доступна всем ппрайтам. Пример. Программа спрашивает имя пользователя, его рост и вес и находит индекс тела, используя формулу:
В поле текста показано введенное значение веса (74). В блоке ответ пока еще расположено предыдущее значение (184). На сцене отображены также мониторы переменных. Переменныеимя и рост имеют значения, введенные во время выполнения скрипта (Иван и 184), в переменных вес и индекс сохранены значения присвоенные во время предыдущего выполнения (83 и 25). |
Пользовательский ввод Python с клавиатуры — функция input()
Автор
Панкадж Кумар / 8 июля 2019 г.
- Пользовательский ввод Python с клавиатуры можно прочитать с помощью встроенной функции input().
- Ввод пользователя читается как строка и может быть присвоен переменной.
- После ввода значения с клавиатуры, мы должны нажать кнопку «Enter». Затем функция input() считывает значение, введенное пользователем.
- Программа останавливается на неопределенный срок для пользовательского ввода. Нет возможности указать значение тайм-аута.
- Если мы вводим EOF (*nix: Ctrl-D, Windows: Ctrl-Z+Return) , EOFError вызывается и программа завершается.
Синтаксис функции input()
Синтаксис функции input():
ввод (подсказка)
Строка подсказки печатается на консоли, и пользователю предоставляется возможность ввести значение. Вы должны напечатать некоторую полезную информацию, чтобы помочь пользователю ввести ожидаемое значение.
Получение пользовательского ввода в Python
Вот простой пример получения пользовательского ввода и вывода его на консоль.
value = input("Пожалуйста, введите строку:\n")
print(f'Вы ввели {значение}')
Вывод:
Пользовательский ввод PythonКакого типа введенное пользователем значение?
Вводимое пользователем значение всегда преобразуется в строку, а затем присваивается переменной. Давайте подтвердим это, используя функцию type(), чтобы получить тип входной переменной.
value = input("Пожалуйста, введите строку:\n")
print(f'Вы ввели {value} и его тип {type(value)}')
value = input("Пожалуйста, введите целое число:\n")
print(f'Вы ввели {value} и его тип {type(value)}')
Вывод:
Введите строку: Питон Вы ввели Python, и его тип —Пожалуйста, введите целое число: 123 Вы ввели 123, и его тип -
Как получить целое число в качестве пользовательского ввода?
Невозможно получить целое число или любой другой тип в качестве пользовательского ввода.
Однако мы можем использовать встроенные функции для преобразования введенной строки в целое число.
value = input("Пожалуйста, введите целое число:\n")
значение = интервал (значение)
print(f'Вы ввели {значение}, и его квадрат равен {значение ** 2}')
9Д
Traceback (последний последний вызов):
Файл "/Users/pankaj/Documents/PycharmProjects/PythonTutorialPro/hello-world/user_input.py", строка 1, в
value = input("Пожалуйста, введите целое число:\n")
EOFError: EOF при чтении строки
Пользовательский ввод Python вызывает ошибку EOFErrorПример выбора пользовательского ввода Python
Мы можем построить интеллектуальную систему, предоставив пользователю выбор и приняв пользовательский ввод, чтобы продолжить выбор.
value1 = input("Пожалуйста, введите первое целое число:\n")
value2 = input("Пожалуйста, введите второе целое число:\n")
v1 = интервал (значение1)
v2 = интервал (значение2)
selection = input("Введите 1 для сложения.
\nВведите 2 для вычитания.\nВведите 3 для умножения.:\n")
выбор = интервал (выбор)
если выбор == 1:
print(f'Вы ввели {v1} и {v2}, и их сложение равно {v1 + v2}')
Элиф выбор == 2:
print(f'Вы ввели {v1} и {v2}, и их вычитание равно {v1 - v2}')
Элиф выбор == 3:
print(f'Вы ввели {v1} и {v2}, и их умножение равно {v1 * v2}')
еще:
print("Неверный выбор, завершение программы.")
Вот пример вывода выполнения вышеуказанной программы.
Выбор пользовательского ввода PythonКраткое слово о функции Python raw_input()
Функция raw_input() использовалась для ввода пользовательского ввода в версиях Python 2.x. Вот простой пример интерпретатора командной строки Python 2.7, показывающий использование функции raw_input().
~ питон2.7 Python 2.7.10 (по умолчанию, 22 февраля 2019 г., 21:55:15) [GCC 4.2.1, совместимый с Apple LLVM 10.0.1 (clang-1001.0.37.14)] на Дарвине Введите «помощь», «авторское право», «кредиты» или «лицензия» для получения дополнительной информации.>>> value = raw_input("Пожалуйста, введите строку\n") Пожалуйста, введите строку Привет >>> вывести значение Привет
Эта функция устарела и удалена из Python 3. Если вы все еще используете версии Python 2.x, рекомендуется выполнить обновление до версий Python 3.x.
Заключение
В Python очень легко получить пользовательский ввод из функции input(). В основном он используется, чтобы предоставить пользователю выбор операции, а затем соответствующим образом изменить ход программы.
Однако программа бесконечно ожидает ввода данных пользователем. Было бы неплохо иметь некоторое время ожидания и значение по умолчанию на случай, если пользователь не введет значение вовремя.
Ссылки:
- Документация Python.org input()
Получение ввода в Python — GeeksforGeeks
Улучшить статью
Сохранить статью
Нравится Статья
АБХИШЕК ТИВАРИ 13
ученый
28 опубликованных статей
Улучшить статью
Сохранить статью
Нравится Статья
Разработчикам часто необходимо взаимодействовать с пользователями либо для получения данных, либо для предоставления какого-либо результата.
Большинство современных программ используют диалоговое окно как способ попросить пользователя ввести какой-либо тип ввода. В то время как Python предоставляет нам две встроенные функции для чтения ввода с клавиатуры.
- ввод (подсказка)
- raw_input (подсказка)
ввод (): Эта функция сначала принимает ввод от пользователя и преобразует его в строка. Тип возвращаемого объекта всегда будет
Синтаксис:
inp = input('ЗАЯВЛЕНИЕ')
Пример:
1. >>> name = input('Как вас зовут?\n') # \n ---> новая строка ---> Вызывает разрыв строки
>>> Как тебя зовут?
Баран
>>> напечатать(имя)
Баран
# ---> комментарий в python Python3
val = input ( "Введите значение: " ) печать (val) |
Вывод:
Принятие строки в качестве входных данных:
Python3
имя = ввод ( 'Как тебя зовут?\n' ) печать 9016 7 |
Вывод:
Как тебя зовут? Баран Ram
Как функция ввода работает в Python:
- Когда функция input() выполняется, поток программы будет остановлен до тех пор, пока пользователь не введет ввод.

- Текст или сообщение, отображаемое на экране вывода и предлагающее пользователю ввести входное значение, является необязательным, т. е. приглашение, которое будет напечатано на экране, является необязательным.
- Что бы вы ни вводили в качестве входных данных, функция ввода преобразует их в строку. если вы введете целочисленное значение, функция input() все равно преобразует его в строку. Вам нужно явно преобразовать его в целое число в вашем коде, используя приведение типов.
Код:
Python3
число 90 167 (имя1)
печать ( "тип номера" , тип (номер)) печать ( "тип имени" , тип (имя1 )) |
Вывод:
raw_input(): Эта функция работает в более старых версиях (например, Python 2.
Если входные данные отключены, окно не получает такие входные данные, как щелчки мыши и нажатия клавиш. Если входные данные включены, окно получает все входные данные.
Функция преобразует коды с помощью языка ввода и идентификатора языкового стандарта ввода.
Если окна используют ту же очередь ввода, сообщение отправляется синхронно, сначала в процедуру окна деактивации окна верхнего уровня, а затем в процедуру окна, активируемого верхнего уровня. Если окна используют разные входные очереди, сообщение отправляется асинхронно, поэтому окно активируется немедленно.
WM_DEADCHAR указывает код символа, созданный мертвым ключом. Мертвый ключ — это ключ, который создает символ, например umlaut (двойная точка), который объединяется с другим символом для формирования составного символа. Например, символ umlaut-O () создается путем ввода мертвого ключа для символа umlaut, а затем ввода клавиши O.
Окно, получающее сообщение, может различать эти два контекста, проверив код контекста в параметре lParam .
На сцене отображены также мониторы переменных. Переменныеимя и рост имеют значения, введенные во время выполнения скрипта (Иван и 184), в переменных вес и индекс сохранены значения присвоенные во время предыдущего выполнения (83 и 25).
>>> value = raw_input("Пожалуйста, введите строку\n")
Пожалуйста, введите строку
Привет
>>> вывести значение
Привет