So, habe es hinbekommen: Sie muss so aussehen:
Code:
LanguageNames=(German=0x407:MSG00407)
MessageId=0x1
SymbolicName=CAT_1
Language=German
Kategorie 1
.
MessageId=0x100
SymbolicName=MSG_DEMO_ENTRY
Language=German
Testeintrag von %1.
.
Aber leider funktioniert es immer noch nicht. Meine Registryeinträge sehen so aus:
Code:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\Demo]
"CategoryCount"=dword:00000001
"TypesSupported"=dword:00000000
"EventMessageFile"="E:\\Delphi\\Sourcecodes\\In_Bearbeitung\\MpuWriteEventLog\\Project1.exe"
"CategoryMessageFile"="E:\\Delphi\\Sourcecodes\\In_Bearbeitung\\MpuWriteEventLog\\Project1.exe"
Und mein dazugehöriger Programmcode:
Delphi-Quellcode:
{$R 'EvtLogMsg.res'}
var
Form1 : TForm1;
implementation
{$R *.dfm}
const
cSourceName : string = 'Application'; // wir wollen in das EventLog "Anwendungen" schreiben
procedure LogMessage(typ, kategorienr: word; nachrichtnr: Cardinal; parameter1: string);
var
log : THandle;
pmsgArray : array[0..0] of PChar;
begin
log := OpenEventLog(nil, pchar(cSourceName));
if log > 0 then
begin
try
pmsgArray[0] := PChar(parameter1);
if not ReportEvent(log, typ, kategorienr, nachrichtnr, nil, 1, 0, @pmsgArray, nil) then
ShowMessage(SysErrorMessage(GetLastError));
finally
CloseEventLog(log);
end;
end
else
ShowMessage(SysErrorMessage(GetLastError));
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
LogMessage(EVENTLOG_INFORMATION_TYPE, $1, $100, 'Hallo');
end;
Ich bin etwas ratlos.