Thats right,
you have to use the microsoft message compiler which then spits out a RES
file and include that in your application. You then also have to register
you application so that the event log knows which exe or dll contains the
messages.
MessageId=5
SymbolicName=EVENTLOG_CAT_EXPORTER
Language=English
Results Export
.
And
//Registry Key values
EventTypesKey = 'TypesSupported';
EventCatCountKey = 'CategoryCount';
EventMessagesKey = 'EventMessageFile';
EventCategoryKey = 'CategoryMessageFile';
EventLogKey =
'\SYSTEM\CurrentControlSet\Services\EventLog\Application\YourAppName';
{$IFDEF CHECKEVENTLOG}
Rgstry := TRegistry.Create;
try
GetDLLFileName;
Rgstry.RootKey := HKEY_LOCAL_MACHINE;
if not (Rgstry.OpenKeyReadOnly( EventLogKey ) and (DLLFileName =
Rgstry.ReadString( EventMessagesKey )) and (Rgstry.ReadInteger(
EventCatCountKey ) = EVENTLOG_CAT_COUNT)) then begin
Rgstry.CloseKey;
Rgstry.RootKey := HKEY_LOCAL_MACHINE;
Rgstry.Access := KEY_WRITE or ((STANDARD_RIGHTS_READ or
KEY_QUERY_VALUE) and not SYNCHRONIZE);
if Rgstry.OpenKey( EventLogKey, True ) then begin
Rgstry.WriteInteger( EventTypesKey, 7 );
Rgstry.WriteInteger( EventCatCountKey, EVENTLOG_CAT_COUNT );
Rgstry.WriteExpandString( EventMessagesKey, DLLFileName );
Rgstry.WriteExpandString( EventCategoryKey, DLLFileName );
end;
end;
finally
Rgstry.CloseKey;
Rgstry.Free;
end;
{$ENDIF}
Myles.
-----Original Message-----
From: Nello Sestini [mailto:[EMAIL PROTECTED]]
Sent: Tuesday, 16 October 2001 12:49 p.m.
To: Multiple recipients of list delphi
Subject: Re: [DUG]: Event Log interaction with Delphi
> The problem I have is then getting the event log to pickup the correct
> message form the application. What I have tried is to create a StringTable
> in a resource file like below, but currently I have had no success and are
> still getting the default message.
>
> STRINGTABLE
> {
> 71006, "My custom event message here"
> }
>
> If anyone can shed some light on how to do this it would be greatly
> appreciated
I've never done this in a Delphi App - but have using VC++ and that project
does it (I hope you are sitting down) like this:
as part of the application build, BEFORE the link or compile, it runs
a utility called MC.EXE
MC takes a text .MC file with messages (separated by blank lines) formatted
like this:
MessageID=
SymbolicName=MC_REBOOTSENTRYSTARTED
Language=English
Reboot sentry thread started
---------------------------------------------------------------------------
New Zealand Delphi Users group - Delphi List - [EMAIL PROTECTED]
Website: http://www.delphi.org.nz
To UnSub, send email to: [EMAIL PROTECTED]
with body of "unsubscribe delphi"
Web Archive at: http://www.mail-archive.com/delphi%40delphi.org.nz/