KeySpoof Python
хочу написать такую штуку как KeySpoof, если кто не знает, это когда нажимаешь например на q, а пишется другая буква, так вот, как такое сотворить? именно чтобы писалась не q,а k (это пример), желательно,чтобы я нажимал рандом буквы,а писались данные в аргументах a b c d e вот мой код:
from pynput.keyboard import Key, Listener
def on_release(key):
if keyvvod == True:
print('{0} release'.format(key))
if keyid == 1:
shell.SendKeys(a)
keyid = keyid + 1
print(keyid)
elif keyid == 2:
shell.SendKeys(b)
keyid = keyid + 1
elif keyid == 3:
shell.SendKeys(c)
keyid = keyid + 1
elif keyid == 4:
shell.SendKeys(d)
keyid = keyid + 1
elif keyid == 5:
shell.SendKeys(e)
keyid = keyid + 1
elif keyid == 6:
shell.SendKeys("{ENTER}")
keyid = 0
else:
return
if key == Key.esc:
# Stop listener
print("Stop")
return False
# Collect events until released
with Listener(on_release=on_release) as listener:
listener.join() ```
Ответы (2 шт):
Автор решения: Koliqa
→ Ссылка
Можно попробовать словари keys_dict = {old_key_1 : new_key_1, old_key_2 : new_key_2} и просто написать shell.SendKeys(keys_dict.get(key))
Автор решения: Viewed
→ Ссылка
Следующий код заменяет нажатие буквенных клавиш на случайные. Кнопки типа Esc, Space, Alt пропускаются как есть.
# pip install keyboard
import keyboard
from string import ascii_letters
from random import choice
def send_random_key():
key = choice(ascii_letters)
print('New key: ', key)
keyboard.send(key)
def hook(event):
if not event.name in ascii_letters:
return event
print('Blocked: ', event)
send_random_key()
keyboard.hook(callback=hook, suppress=True)
keyboard.wait()
# Blocked: KeyboardEvent(l up)
# New key: o
# Blocked: KeyboardEvent(l down)
# New key: J
# Blocked: KeyboardEvent(l up)
# New key: G