我创建了一个简单的键盘记录程序。键盘上键入的所有内容都将发送到log.txt文件。问题是我的代码只适用于ASCII代码。 当我输入希腊字符时,它们会被视为英语。
我想要我的代码:
到目前为止我的代码:
import pyHook , pythoncom , sys , logging , os
file_log = "C:\\Users\\admin\\Desktop\\New folder\\log.txt"
f = open(file_log , 'w')
try:
f.seek(0)
f.truncate()
finally:
f.close()
def OnKeyboardEvent(event):
logging.basicConfig(filename=file_log,level = logging.DEBUG , format='%(message)s')
chr(event.Ascii)
logging.log(10,chr(event.Ascii))
key = chr(event.Ascii)
print key
if (key == 'p'):
os.startfile("C:\\Users\\admin\\Desktop\\New folder\\log.txt")
sys.exit()
return True
hooks_manager = pyHook.HookManager()
hooks_manager.KeyDown = OnKeyboardEvent
hooks_manager.HookKeyboard()
pythoncom.PumpMessages()
我的程序应该接受Unicode吗?
怎么会这样做?
答案 0 :(得分:0)
我建议你使用不同的模块。我自己尝试过使用PyHook,但是在按下死键时这会引起我的问题(“^”)通常使用á等特殊字母的其他语言包含死键。 PyHook不能很好地处理它们。我目前使用的模块是keyboard。键盘正确处理死键,并且在遇到它们时不会显示一些奇怪的行为。也许键盘也是你的解决方案。使用键盘的示例如下:
mysql -e 'SET GLOBAL innodb_flush_log_at_trx_commit = 2'
mysql dbname < file.sql
mysql -e 'SET GLOBAL innodb_flush_log_at_trx_commit = 1'
在Python 3.5上测试