【问题标题】:pyHook event.Time returning irregular TimestamppyHook event.Time 返回不规则时间戳
【发布时间】:2018-11-21 03:52:05
【问题描述】:

我一直在用 Python 编写一个基本的键盘记录器。在检查我的日志时,我发现我使用event.Time 记录的时间戳不是 Unix 时间戳。它是什么类型的时间戳,如何将其转换为可读格式?

import pyHook, pythoncom, sys, logging
advancedLog="path\\advanced_log.txt"

def OnKeyboardEvent(event):

    logging.basicConfig(filename=advancedLog, level=logging.DEBUG, format='%(message)s')

    logging.log(10,chr(event.Ascii))
    logging.log(10,'MessageName: {}'.format(event.MessageName))
    logging.log(10,'Message: {}'.format(event.Message))

    logging.log(10,'Time: {}'.format(event.Time))

    logging.log(10,'Window: {}'.format(event.Window))
    logging.log(10,'WindowName: {}'.format(event.WindowName))
    logging.log(10,'Ascii: {}'.format(event.Ascii))
    logging.log(10,'Key: {}'.format(event.Key))
    logging.log(10,'KeyID: {}'.format(event.KeyID))
    logging.log(10,'--------------')

    return True


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

我收到的输出:

Time: 561750343

【问题讨论】:

  • 什么是event
  • 如果您不共享代码,这与 Python 无关。如果我们知道您使用的是什么库等,我们更容易知道它是什么格式。
  • 可能系统时钟设置为 1987 年?
  • @JamieBull 不,不是
  • 对不起,我在开玩笑。其他两个cmet才是真正需要回答的

标签: python unix logging time timestamp


【解决方案1】:

这不是一个实际的时间戳。它是“自上次启动以来的毫秒数”。如果你想保存当前时间,你可以使用time库。

这不是“自纪元以来的秒数”。它直接来自 Win32 EVENTMSG 结构的“时间”成员,单位为 “自上次启动以来的毫秒数”。

来源: Python.org

【讨论】:

  • 你知道我怎样才能记录击键的时间而不是这个吗?
  • @Bogdan 请查看更新后的答案。您可以只使用时间库来记录当前时间。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-16
相关资源
最近更新 更多