是否有用于在Windows事件查看器中创建自定义视图的API?
我想在使用NSIS的安装中这样做, 但是,如果我不能,还有其他任何方式,那么我会为它编写一个插件。
答案 0 :(得分:0)
问题不是NSIS而是the way the Event Log works,您需要在系统的某处安装消息表DLL并在注册表中注册它。此DLL必须保留在系统上,因为当您查看日志时,事件日志查看器会使用此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