Форум программистов, компьютерный форум, киберфорум
Python: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.81/103: Рейтинг темы: голосов - 103, средняя оценка - 4.81
0 / 0 / 0
Регистрация: 25.11.2017
Сообщений: 14

Модуль msvcrt

18.06.2018, 23:20. Показов 19662. Ответов 16

Студворк — интернет-сервис помощи студентам
В своей программе мне понадобилась обработка нажатия клавиш на клавиатуре, и взор мой пал на встроенный модуль msvcrt. В самой программе я использую msvcrt.getch(). Насколько я понимаю, данная функция должна дождаться нажатия какой-либо клавиши, а затем вернуть, какая клавиша была нажата. Но у меня эта функция не только не дожидается нажатия клавиши, так ещё и постоянно выводит "b'xff'". Пытался найти подобную инфу - таковой нигде нет.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.06.2018, 23:20
Ответы с готовыми решениями:

Нужна инфа по библиотеке msvcrt питон
Сейчас создаю небольшой проект. Для него мне надо чтобы программа реагировал на нажатие клавиш. Скиньте пожалуйста статью про библиотеку...

msvcrt: Control-H и Backspace Control-I и Tab и т. д
Код import msvcrt print(ord(msvcrt.getch())) выдаст 8, если пользователь нажмёт Backspace, но этот код также выдаст 8, если...

Зависает модуль tkinter при использовании модуль Time || python
По приколу решил создать клик тест на питоне. При этом использовал два модуля tkinter для красоты и time для таймера. Но столкнулся с...

16
1741 / 913 / 480
Регистрация: 05.12.2013
Сообщений: 3,074
18.06.2018, 23:52
Приведите ваш код

Вот рабочий пример

Python
1
2
3
4
5
6
7
8
9
import msvcrt
import sys
 
while True:
    pressedKey = msvcrt.getch()
    if ord(pressedKey) == ord('q'):    
       sys.exit()
    else:
       print ("Key Pressed:", ord(pressedKey))
1
0 / 0 / 0
Регистрация: 25.11.2017
Сообщений: 14
19.06.2018, 00:01  [ТС]
Ваш вариант нерабочий, выходит то же самое
0
1741 / 913 / 480
Регистрация: 05.12.2013
Сообщений: 3,074
19.06.2018, 00:07
Цитата Сообщение от MrCatsss Посмотреть сообщение
Ваш вариант нерабочий
Очень даже рабочий, как видно на картинке, рассказывайте подробно что и как делаете
Миниатюры
Модуль msvcrt  
0
0 / 0 / 0
Регистрация: 25.11.2017
Сообщений: 14
19.06.2018, 00:18  [ТС]
При запуске программы выводит одно и то же, если без использования orb, то будет тот же самый b'xff'
Миниатюры
Модуль msvcrt  
0
1741 / 913 / 480
Регистрация: 05.12.2013
Сообщений: 3,074
19.06.2018, 00:36
Может у вас кнопка на клавиатуре заела, 255 это код мультимедийных кнопок
0
0 / 0 / 0
Регистрация: 25.11.2017
Сообщений: 14
19.06.2018, 00:41  [ТС]
Мультимедийные кнопки у меня работают только при зажатой кнопке function, а она заесть точно не может
0
1741 / 913 / 480
Регистрация: 05.12.2013
Сообщений: 3,074
19.06.2018, 00:42
В чем пишите код? Какая версия python?
0
0 / 0 / 0
Регистрация: 25.11.2017
Сообщений: 14
19.06.2018, 00:58  [ТС]
Среда PyCharm, версия Python 3.6
0
1741 / 913 / 480
Регистрация: 05.12.2013
Сообщений: 3,074
19.06.2018, 01:11
Так может pycharm чудит, попробуйте из командной строки скрипт запустить
0
0 / 0 / 0
Регистрация: 25.11.2017
Сообщений: 14
19.06.2018, 01:19  [ТС]
В IDLE то же самое происходит, но если запускать напрямую, без среды, то всё нормально
0
1741 / 913 / 480
Регистрация: 05.12.2013
Сообщений: 3,074
19.06.2018, 01:37
Тогда можно сделать так

Python
1
2
3
4
5
6
7
8
9
10
11
import msvcrt
import sys
 
while True:
    pressedKey = msvcrt.getch()
    if ord(pressedKey) == 255:
        continue
    if ord(pressedKey) == ord('q'):    
       sys.exit()
    else:
       print ("Key Pressed:", ord(pressedKey))
0
0 / 0 / 0
Регистрация: 25.11.2017
Сообщений: 14
19.06.2018, 02:06  [ТС]
Возможно, кстати, что это из-за того, что у меня беспроводная клавиатура не лучшего качества. Может такое быть?
0
1741 / 913 / 480
Регистрация: 05.12.2013
Сообщений: 3,074
19.06.2018, 02:25
Можно отключить беспроводную клавиатуру и с экранной клавиатуры проверить как будет работать
0
0 / 0 / 0
Регистрация: 25.11.2017
Сообщений: 14
19.06.2018, 13:49  [ТС]
Ничего не изменилось

Добавлено через 21 минуту
Ваш второй вариант тоже не будет рабочим для меня, т. к. функция всегда выводит 255, не обращая внимания на нажатые клавиши
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
19.06.2018, 14:34
Цитата с багтрекера:
msvcrt.getch() does not block and wait for a keypress in IDLE. Returns immediately with b'\xff'.

Some of the suggested usage in the manual for sys.stdin does not work under IDLE. E.g. sys.stdin.detach() doesn't work in IDLE. On this last point, the manual has a caveat in the last line of the sys.stdin description that could exonerate it. Regardless, the behavior is inconsistent and makes for awkward UI when using IDLE.
1
1 / 1 / 0
Регистрация: 02.04.2019
Сообщений: 12
06.04.2019, 23:56
Работает спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.04.2019, 23:56
Помогаю со студенческими работами здесь

Ругается на include msvcrt.inc / includelib msvcrt.lib
почему RadASM(masm32) может ругаться на include msvcrt.inc includelib msvcrt.lib ??? .586 .model flat,stdcall option...

MSVCRT vs UCRT
Использую GCC 11.2.0 + MinGW-w64 9.0.0, которые доступны в двух runtime: MSVCRT и UCRT. Какой из них выбирать для компиляции программ на...

Стандартная библиотека Си msvcrt.dll
Никак не могу понять принцип работы этих функций, например, в чем будет различие в использование printf от WriteConsole? WriteConsole из...

Python 3.6.8 msvcrt.getch неработает
Доброго времени суток! У меня появилась проблема в Python 3.6.8: при использовании функции getch модуля msvcrt программа просто зависает и...

Настройки Intel c++. MSVCRT.LIB
В вижуалке 2010 все просто: мы кликами заходим в свойства конфигурации-компоновщик-командная строка и там прописываем MSVCRT.LIB , если...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru