是否有在 Windows 事件查看器中创建自定义视图的 API?
我想在使用 NSIS 的安装中做到这一点,但如果我不能并且还有其他方法,那么我将为它编写一个插件。
是否有在 Windows 事件查看器中创建自定义视图的 API?
我想在使用 NSIS 的安装中做到这一点,但如果我不能并且还有其他方法,那么我将为它编写一个插件。
问题不在于 NSIS,而是事件日志的工作方式,您需要在系统某处安装消息表 DLL 并将其注册到注册表中。此 DLL 必须保留在系统上,因为它在您查看日志时由事件日志查看器使用,而在您记录消息时不使用!这种设计对于安装人员来说确实是个问题。
最好只登录到 $temp 或 $exedir 中的纯文本文件。
如果您真的想使用事件日志并且不介意黑客攻击,您可以:
NSIS 代码如下所示:
section
System::Call 'advapi32::RegisterEventSource(i0,t "Software Installation")i.r0'
#TODO: Check if $0 == 0 and display error message
System::Call '*(i,&t1000 "Hello world")i.r1'
IntOp $2 $1 + 4
System::Call '*$1(ir2)'
System::Call 'advapi32::ReportEvent(ir0,i ${EVENTLOG_ERROR_TYPE},i0,i 101,i0,i1,i0,ir1,i0)i'
System::Free $1
System::Call 'advapi32::DeregisterEventSource(ir0)'
sectionend