【发布时间】:2018-02-09 23:43:54
【问题描述】:
似乎并非所有 Windows 事件消息扩展字符串都在“EventMessageFile”注册表值中指定。例如,对于 Windows 2008 服务器上的“Microsoft-Windows-TerminalServices-RemoteConnectionManager”,EventMessageFile DLL %SystemRoot%\system32\termsrv.dll”不包含消息表:
这意味着 DLL 句柄设置为 termsrv.dll 的 FormatMessageW 不起作用 :( 我在哪里可以获得正确的消息字符串?
【问题讨论】:
-
如果您使用正确的错误值和参数测试调用
FormatMessageW- 您可以查看它“工作” - 通过LdrLoadAlternateResourceModuleEx加载\<lang>-<sublung>\termsrv.dll.mui并从中获取字符串 -
正确的论点是什么?我用过这个:``` data = win32api.FormatMessageW(win32con.FORMAT_MESSAGE_FROM_HMODULE, dllHandle, event.EventID, LANGID, event.StringInserts) ```