weixin_46027762 2023-05-20 10:33 采纳率: 65.7%
浏览 198
已结题

获取Windows日志的常规下的描述(c/c++)

请问怎么获取Windows日志的常规内容,不是详细xml的那个内容

img

  • 写回答

6条回答 默认 最新

  • churuxu 2023-05-22 16:02
    关注

    方法教你,代码自己写吧
    参考示例 https://learn.microsoft.com/en-us/windows/win32/eventlog/receiving-event-notification

    1. 获取到 EVENTLOGRECORD  
    2. 获取到EventSource, TCHAR* source = (TCHAR*)((BYTE*)eventrecord + sizeof(EVENTLOGRECORD))
    3. 注册表读取 HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/EventLog/System/<EventSource名称>/EventMessageFile
    4. 加载得到的多个DLL,LoadLibraryEx(dll名称, NULL, LOAD_LIBRARY_AS_IMAGE_RESOURCE | LOAD_LIBRARY_AS_DATAFILE)
    5. FormatMessage传入DLL的handle,得到中间字符串,参考示例中的GetMessageString函数和调用它的地方
    6. 中间字符串中的所有 %XXX,再调用FormatMessage得到字符串,替换掉。参考示例中的ApplyParameterStringsToMessage函数
    7. 打印输出结果字符串
    8. 卸载DLL
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

问题事件

  • 系统已结题 5月30日
  • 已采纳回答 5月22日
  • 请回答用户的提问 5月20日
  • 创建了问题 5月20日