Я использую Kali 2022 (Linux) с XFCE 4.16. Я экспериментирую с модулем Python evdev . Я пытаюсь достичь при нажатии определенной клавиши на клавиатуре (например, буква «a»), вместо буквы «a», я хочу опубликовать конкретный символ Unicode на элементе фокусировки. Другие слова, я хочу отобразить key_a с другим символом Unicode, который не является «а».shit+u затем введите шестигранный код Unicode для символа. Но когда я моделирую эти клавиши, используя uinput в Python, моделируемые клавишные клавиши публикуют ненужные символы (например, U0985) в элементе фокуса. Linux по какой -то причине не показывает символ Unicode, представленный им. Какая проблема в моем коде и как он может распечатать фактический Unicode. < /p>
import evdev
from evdev import UInput, ecodes as e
import time
# Open the input device (replace with your actual device)
dev = evdev.InputDevice('/dev/input/event2')
dev.grab() # Grab the device to receive all events
# Create a virtual uinput device with capabilities
cap = {e.EV_KEY: [e.KEY_A, e.KEY_B,e.KEY_G,e.KEY_U,e.KEY_0,e.KEY_9,e.KEY_8,e.KEY_5,e.KEY_ENTER]}
ui = UInput(cap, name='my_virtual_keyboard')
for event in dev.read_loop():
if event.type == e.EV_KEY:
key_event = evdev.categorize(event)
if key_event.keystate == evdev.KeyEvent.key_down:
# Simulate pressing Ctrl+Shift+U
ui.write(event.type, e.KEY_LEFTCTRL, 1)
ui.write(event.type, e.KEY_LEFTSHIFT, 1)
ui.write(event.type, e.KEY_U, 1)
ui.write(event.type, e.KEY_U, 0) # Release U
ui.write(event.type, e.KEY_LEFTSHIFT, 0) # Release Shift
ui.write(event.type, e.KEY_LEFTCTRL, 0) # Release Ctrl
ui.syn() # Synchronize events
time.sleep(0.1) # Small delay for the system to register the input mode
# This would involve simulating individual key presses for '0', '9', '8', '5'
# ... (code to simulate these key presses) ...
ui.write(event.type, e.KEY_0, 1)
ui.write(event.type, e.KEY_0, 0)
ui.write(event.type, e.KEY_9, 1)
ui.write(event.type, e.KEY_9, 0)
ui.write(event.type, e.KEY_8, 1)
ui.write(event.type, e.KEY_8, 0)
ui.write(event.type, e.KEY_5, 1)
ui.write(event.type, e.KEY_5, 0)
ui.syn()
time.sleep(0.1) # Small delay for the system to register the input mode
# Simulate pressing Enter to confirm the Unicode input
ui.write(event.type, e.KEY_ENTER, 1)
ui.write(event.type, e.KEY_ENTER, 0)
ui.syn()
elif key_event.keystate == evdev.KeyEvent.key_up:
pass
else:
# Re-inject other event types (e.g., EV_SYN)
ui.write(event.type, event.code, event.value)
#ungrab and close
dev.ungrab()
ui.close()
Подробнее здесь: https://stackoverflow.com/questions/797 ... -python-in
Выходной символ Unicode, подавив исходный клавиш с использованием Evdev Python в Linux ⇐ Linux
1755972835
Anonymous
Я использую Kali 2022 (Linux) с XFCE 4.16. Я экспериментирую с модулем Python evdev . Я пытаюсь достичь при нажатии определенной клавиши на клавиатуре (например, буква «a»), вместо буквы «a», я хочу опубликовать конкретный символ Unicode на элементе фокусировки. Другие слова, я хочу отобразить key_a с другим символом Unicode, который не является «а».shit+u затем введите шестигранный код Unicode для символа. Но когда я моделирую эти клавиши, используя uinput в Python, моделируемые клавишные клавиши публикуют ненужные символы (например, U0985) в элементе фокуса. Linux по какой -то причине не показывает символ Unicode, представленный им. Какая проблема в моем коде и как он может распечатать фактический Unicode. < /p>
import evdev
from evdev import UInput, ecodes as e
import time
# Open the input device (replace with your actual device)
dev = evdev.InputDevice('/dev/input/event2')
dev.grab() # Grab the device to receive all events
# Create a virtual uinput device with capabilities
cap = {e.EV_KEY: [e.KEY_A, e.KEY_B,e.KEY_G,e.KEY_U,e.KEY_0,e.KEY_9,e.KEY_8,e.KEY_5,e.KEY_ENTER]}
ui = UInput(cap, name='my_virtual_keyboard')
for event in dev.read_loop():
if event.type == e.EV_KEY:
key_event = evdev.categorize(event)
if key_event.keystate == evdev.KeyEvent.key_down:
# Simulate pressing Ctrl+Shift+U
ui.write(event.type, e.KEY_LEFTCTRL, 1)
ui.write(event.type, e.KEY_LEFTSHIFT, 1)
ui.write(event.type, e.KEY_U, 1)
ui.write(event.type, e.KEY_U, 0) # Release U
ui.write(event.type, e.KEY_LEFTSHIFT, 0) # Release Shift
ui.write(event.type, e.KEY_LEFTCTRL, 0) # Release Ctrl
ui.syn() # Synchronize events
time.sleep(0.1) # Small delay for the system to register the input mode
# This would involve simulating individual key presses for '0', '9', '8', '5'
# ... (code to simulate these key presses) ...
ui.write(event.type, e.KEY_0, 1)
ui.write(event.type, e.KEY_0, 0)
ui.write(event.type, e.KEY_9, 1)
ui.write(event.type, e.KEY_9, 0)
ui.write(event.type, e.KEY_8, 1)
ui.write(event.type, e.KEY_8, 0)
ui.write(event.type, e.KEY_5, 1)
ui.write(event.type, e.KEY_5, 0)
ui.syn()
time.sleep(0.1) # Small delay for the system to register the input mode
# Simulate pressing Enter to confirm the Unicode input
ui.write(event.type, e.KEY_ENTER, 1)
ui.write(event.type, e.KEY_ENTER, 0)
ui.syn()
elif key_event.keystate == evdev.KeyEvent.key_up:
pass
else:
# Re-inject other event types (e.g., EV_SYN)
ui.write(event.type, event.code, event.value)
#ungrab and close
dev.ungrab()
ui.close()
Подробнее здесь: [url]https://stackoverflow.com/questions/79744396/ouput-unicode-character-by-suppressing-original-keystroke-using-evdev-python-in[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия