Ввод с клавиатуры — 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 или на флажок справа от поля ввода блок получает введенное пользователем значение и работа скрипта продолжается. Значение блока можно рассматривать как глобальную переменную специального вида, которая доступна всем ппрайтам.
При выполнении следующего блока Спросить новое введенное значение заменяет предыдущее значение блока ответ. Если введенное значение необходимо в дальнейшем использовать, то его можно присвоить переменной.
Пример. Программа спрашивает имя пользователя, его рост и вес и находит индекс тела, используя формулу:
индекс = вес / рост2, где единицей веса является килограмм, а роста — метр.
Программа демонстрирует также использование переменных, числовых выражений и слияния текста. Используется четыре переменных: имя, рост, вес и индекс.
После выполнения первого блокаСпросить значение блока ответ(напр. Иван) присваивается переменной имя. Во втором блоке Спроситьзначение переменной имяобъединено с константой и в выноске отображается текст: Иван! Ваш рост? При выполнении следующего блока значение, введенное пользователем, присваивается переменной рост и тем самым сохраняется. |
В поле текста показано введенное значение веса (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, вПользовательский ввод Python вызывает ошибку EOFErrorvalue = input("Пожалуйста, введите целое число:\n") EOFError: EOF при чтении строки
Пример выбора пользовательского ввода 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.