View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0006160 | JEDI VCL | 00 JVCL Components | public | 2013-07-06 16:54 | 2017-04-20 11:19 |
Reporter | Delphi86 | Assigned To | |||
Priority | normal | Severity | major | Reproducibility | always |
Status | confirmed | Resolution | open | ||
Product Version | 3.47 | ||||
Target Version | Fixed in Version | ||||
Summary | 0006160: JvNTEventLog shows wrong properties | ||||
Description | Hello, I'm new to this and not an Delphi expert, but I have found an Issue. This is some kind of unprofessional code, but shows the issue: --- Delphi Code --- JvLog.Server := 'localhost'; JvLog.Source := 'Security'; // System, Application JvLog.Open; JvLog.Last; ShowMessage(IntToStr(JvLog.EventRecord.ID) + ' | ' + JvLog.EventRecord.EventType + ' | ' + JvLog.EventRecord.Source + ' | ' + JvLog.EventRecord.Computer + ' | ' + IntToStr(JvLog.EventRecord.RecordNumber) + ' | ' + DateTimeToStr(JvLog.EventRecord.DateTime)); --- Delphi Code End --- I just wanted to show some properties of the EventLog in a ShowMessage, but for the 3 logs Application, System and Security I got different properties. For Example "JvLog.EventRecord.Computer" shows the Computer name only in the Security log. In the other Logs the Source propertie holds my Computer name and in the System Log the name is cut off (Lukas-PC --> s-PC).It's hard to describe but I added a picture which should underline what I mean. Thank you, Lukas | ||||
Additional Information | I don't know if there is an issue, but I had to covert the ID of the System and Application Log into hey code to cut off the flag and than convert it back to become the real ID. But sometimes the ID comes without a flag. So if I watch the EventLog and get the Event ID 1014 everything is okay. But when I get 1073748860 I have to convert it into hey code 40001B7C, cut off the flag (4000) and then convert it back 1B7C --> 7036. But how to make a difference between them, so Delphi knows which ID has a flag and which not. My first thought was to use the amount of digits but that's unsafe and I don't know how many flags exists and how long they are. | ||||
Tags | No tags attached. | ||||
2013-07-06 16:54
|
Issues.bmp (455,382 bytes) |
|
Attach demo project please Also, there is no such version as "Delphi86" - that is something bogus PS. to post screenshots, better use PNG or GIF formats > to cut off the flag and than convert it back to become the real ID why do you think those were some flags (which flags? what do they mean, what do they describe?) and not real IDs (large ? yes, there are large numbers in computers...) > first thought was to use the amount of digits but that's unsafe True. You'd better read about binary operations. For example you can use something like IntToStr(ID and not $F0000000) - but i also don't have a clue if that is correct or how many flags or if there are any flags at all. See bitwise operators at http://docwiki.embarcadero.com/RADStudio/XE4/en/Expressions_(Delphi)#Logical_.28Bitwise.29_Operators See also http://en.wikipedia.org/wiki/Binary_number That is the basis of programming, unless some exotic ternary computers used |
|
> Attach demo project please Done! > Also, there is no such version as "Delphi86" - that is something bogus Ops, where have I mentioned "Delphi86" as version? It's my username here, my Delphi Version is Rad Studio XE2, JVCL Version mentioned above. > For example you can use something like IntToStr(ID and not $F0000000) - but i also don't have a clue if that is correct or how many flags or if there are any flags at all. Works, thanks, my fault! Still UserName/Computername does not work properly. |
2013-09-01 00:19
|
JvNTEventLog Demo.rar (632,239 bytes) |
|
Btw: OS: Win7 Prof. 64bit |
|
Well, at work i also use w7x64 and xe2u4hf1 I also try to keep JVCL at git-master, so it maybe somewhat more recent than 3.47 OTOH this month would be very busy for me, so i cannot promise anything, but trying your demo project on my box |
|
A bit of offtopic: ShowMessage(IntToStr(JvLog.EventRecord.ID) + ' | ' + JvLog.EventRecord.EventType + ' | ' + JvLog.EventRecord.Source + ' | ' + JvLog.EventRecord.Computer + ' | ' + IntToStr(JvLog.EventRecord.RecordNumber) + ' | ' + DateTimeToStr(JvLog.EventRecord.DateTime)); i wonder if this would do the same but with easier to read (IMHO) code :-) ShowMessage( JclStringsList.Add( [ JvLog.EventRecord.ID, JvLog.EventRecord.EventType, JvLog.EventRecord.Source, JvLog.EventRecord.Computer, JvLog.EventRecord.RecordNumber, JvLog.EventRecord.DateTime ]).Join(' | ') ); |
|
Looks better! Interesting type of code, The option would be to use Format |
|
This god-forgotten component could easily blow the stack ever since Delphi 2009 It does not support new rich event sources introduce by Vista and Win2008 Server It only partially supports classic Win2K/XP event messages. Messages are not supported on Win64 Should rather it be just removed from JVCL ? This component is a kind of whit elephant (a little one, but still). Or perhaps "handle-less suitcase". |
|
Delphi86 - try new code. And yes, those were not flags but an integral part of IDs. Event ID is not a plain integer but a structure. So "ID and not $F0000000:" that you show is not ID at all. http://msdn.microsoft.com/en-us/library/aa363651(v=vs.85).aspx |
|
Cannot make pull request due to Git CR/LF issues. Please, someone, apply the patch. |
2013-09-02 14:16
|
0001-6160-TJvNTEventLog.patch (140,770 bytes)
From b6f435a45f7d93cb086f3cf2a10ebccc56e2b364 Mon Sep 17 00:00:00 2001 From: the-Arioch <the_Arioch@nm.ru> Date: Mon, 2 Sep 2013 15:52:11 +0400 Subject: [PATCH] #6160 TJvNTEventLog: * fixed Delphi2009+ potential stack blowing, * added Raw EventID parsing, * fixed some text properties for events. * added working simplistic demo, based on the bug-report. Note: stock demo seems to be either corrupt or left half-baked. It doesn't even try to load events. --- .../JvNTEventLog/Simple Demo/JvNTEventLog_Demo.dpr | 14 + .../JvNTEventLog/Simple Demo/JvNTEventLog_Demo.res | Bin 0 -> 298600 bytes jvcl/examples/JvNTEventLog/Simple Demo/UMain.dfm | 89 ++++++ jvcl/examples/JvNTEventLog/Simple Demo/UMain.pas | 102 ++++++ jvcl/run/JvNTEventLog.pas | 352 ++++++++++++++------- jvcl/run/JvResources.pas | 3 + 6 files changed, 445 insertions(+), 115 deletions(-) create mode 100644 jvcl/examples/JvNTEventLog/Simple Demo/JvNTEventLog_Demo.dpr create mode 100644 jvcl/examples/JvNTEventLog/Simple Demo/JvNTEventLog_Demo.res create mode 100644 jvcl/examples/JvNTEventLog/Simple Demo/UMain.dfm create mode 100644 jvcl/examples/JvNTEventLog/Simple Demo/UMain.pas diff --git a/jvcl/examples/JvNTEventLog/Simple Demo/JvNTEventLog_Demo.dpr b/jvcl/examples/JvNTEventLog/Simple Demo/JvNTEventLog_Demo.dpr new file mode 100644 index 0000000..b8f0fe4 --- /dev/null +++ b/jvcl/examples/JvNTEventLog/Simple Demo/JvNTEventLog_Demo.dpr @@ -0,0 +1,14 @@ +program JvNTEventLog_Demo; + +uses + Vcl.Forms, + UMain in 'UMain.pas' {frmMain}; + +{$R *.res} + +begin + Application.Initialize; + Application.MainFormOnTaskbar := True; + Application.CreateForm(TfrmMain, frmMain); + Application.Run; +end. diff --git a/jvcl/examples/JvNTEventLog/Simple Demo/JvNTEventLog_Demo.res b/jvcl/examples/JvNTEventLog/Simple Demo/JvNTEventLog_Demo.res new file mode 100644 index 0000000000000000000000000000000000000000..c287ee9863dccfc9aa3b7e6b7563332879c2b5b1 GIT binary patch literal 298600 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 literal 0 HcmV?d00001 diff --git a/jvcl/examples/JvNTEventLog/Simple Demo/UMain.dfm b/jvcl/examples/JvNTEventLog/Simple Demo/UMain.dfm new file mode 100644 index 0000000..1a7c0e7 --- /dev/null +++ b/jvcl/examples/JvNTEventLog/Simple Demo/UMain.dfm @@ -0,0 +1,89 @@ +object frmMain: TfrmMain + Left = 0 + Top = 0 + Caption = 'JvNTEventLog Demo' + ClientHeight = 287 + ClientWidth = 608 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -14 + Font.Name = 'Tahoma' + Font.Style = [] + OldCreateOrder = False + DesignSize = ( + 608 + 287) + PixelsPerInch = 120 + TextHeight = 17 + object MLog: TMemo + Left = 0 + Top = 0 + Width = 430 + Height = 287 + Anchors = [akLeft, akTop, akRight, akBottom] + ReadOnly = True + ScrollBars = ssVertical + TabOrder = 0 + end + object CLogfile: TRadioGroup + Left = 438 + Top = 113 + Width = 160 + Height = 121 + Anchors = [akRight, akBottom] + Items.Strings = ( + 'Application' + 'Security' + 'System') + TabOrder = 1 + OnClick = CLogfileClick + end + object BtnLog: TButton + Left = 438 + Top = 245 + Width = 160 + Height = 32 + Anchors = [akRight, akBottom] + Caption = 'Log latest event' + Enabled = False + TabOrder = 2 + OnClick = BtnLogClick + end + object btnISAM: TSpinButton + Left = 496 + Top = 24 + Width = 33 + Height = 41 + Anchors = [akTop, akRight] + DownGlyph.Data = { + 0E010000424D0E01000000000000360000002800000009000000060000000100 + 200000000000D800000000000000000000000000000000000000008080000080 + 8000008080000080800000808000008080000080800000808000008080000080 + 8000008080000080800000808000000000000080800000808000008080000080 + 8000008080000080800000808000000000000000000000000000008080000080 + 8000008080000080800000808000000000000000000000000000000000000000 + 0000008080000080800000808000000000000000000000000000000000000000 + 0000000000000000000000808000008080000080800000808000008080000080 + 800000808000008080000080800000808000} + Enabled = False + TabOrder = 3 + UpGlyph.Data = { + 0E010000424D0E01000000000000360000002800000009000000060000000100 + 200000000000D800000000000000000000000000000000000000008080000080 + 8000008080000080800000808000008080000080800000808000008080000080 + 8000000000000000000000000000000000000000000000000000000000000080 + 8000008080000080800000000000000000000000000000000000000000000080 + 8000008080000080800000808000008080000000000000000000000000000080 + 8000008080000080800000808000008080000080800000808000000000000080 + 8000008080000080800000808000008080000080800000808000008080000080 + 800000808000008080000080800000808000} + OnDownClick = btnISAMDownClick + OnUpClick = btnISAMUpClick + end + object JvNTEventLog1: TJvNTEventLog + Active = False + Left = 376 + Top = 8 + end +end diff --git a/jvcl/examples/JvNTEventLog/Simple Demo/UMain.pas b/jvcl/examples/JvNTEventLog/Simple Demo/UMain.pas new file mode 100644 index 0000000..eff5b81 --- /dev/null +++ b/jvcl/examples/JvNTEventLog/Simple Demo/UMain.pas @@ -0,0 +1,102 @@ +unit UMain; + +interface + +uses + Windows, Messages, SysUtils, Classes, Graphics, + Controls, Forms, Dialogs, JvComponentBase, JvNTEventLog, + StdCtrls, ExtCtrls, Vcl.Samples.Spin; + +type + TfrmMain = class(TForm) + MLog: TMemo; + CLogfile: TRadioGroup; + BtnLog: TButton; + JvNTEventLog1: TJvNTEventLog; + btnISAM: TSpinButton; + procedure BtnLogClick(Sender: TObject); + procedure btnISAMUpClick(Sender: TObject); + procedure btnISAMDownClick(Sender: TObject); + procedure CLogfileClick(Sender: TObject); + private + { Private-Deklarationen } + procedure DumpEvent; + public + { Public-Deklarationen } + end; + +var + frmMain: TfrmMain; + +implementation uses StrUtils; + +{$R *.dfm} + +procedure TfrmMain.btnISAMDownClick(Sender: TObject); +begin + JvNTEventLog1.Next; + + DumpEvent; +end; + +procedure TfrmMain.btnISAMUpClick(Sender: TObject); +begin + JvNTEventLog1.Prior; + + DumpEvent; +end; + +procedure TfrmMain.BtnLogClick(Sender: TObject); +begin + JvNTEventLog1.Last; + + DumpEvent; +end; + +procedure TfrmMain.DumpEvent; +var i: integer; +begin + with MLog.Lines do begin + BeginUpdate; + try + Add('--'); + Add('RecordNumber: ' + IntToStr(JvNTEventLog1.EventRecord.RecordNumber)); + Add('DateTime: ' + DateTimeToStr(JvNTEventLog1.EventRecord.DateTime)); + Add('EventType: ' + JvNTEventLog1.EventRecord.EventType); + Add('EventID: ' + IntToStr(JvNTEventLog1.EventRecord.ID) + ' == ' +IntToHex(JvNTEventLog1.EventRecord.ID, 8)); + Add(Format(' Code: %d Facility %d %s %s-defined', [ + JvNTEventLog1.EventRecord.Code, JvNTEventLog1.EventRecord.Facility, + JvNTEventLog1.EventRecord.SeverityAsText, + IfThen( JvNTEventLog1.EventRecord.CustomCode, 'Application', 'Windows')])); + Add('Category: ' + IntToStr(JvNTEventLog1.EventRecord.Category)); + + i := JvNTEventLog1.EventRecord.StringCount; + Add('Has '+IntToStr(i)+' string'+IfThen(i<>1,'s')+IfThen(i>0, ':', '.')); + for i := 1 to i do + Add(Format('%8d: %s', [i, JvNTEventLog1.EventRecord.EventString[i-1]])); + Add('MessageText: ' + JvNTEventLog1.EventRecord.MessageText); + // How the get the content of the message, this one doesn't work! + Add('UserName: ' + JvNTEventLog1.EventRecord.UserName); // Doesn't work ?! + Add('ComputerName: ' + JvNTEventLog1.EventRecord.Computer); + Add('Application: ' + JvNTEventLog1.EventRecord.Source); + finally + EndUpdate; + Add(''); // after .EU - to make TMemo scroll down + end; + end; +end; + + + +procedure TfrmMain.CLogfileClick(Sender: TObject); +begin + // JvNTEventLog1.Server := 'localhost'; // or leave blank + JvNTEventLog1.Source := CLogfile.Items[CLogFile.ItemIndex]; + + JvNTEventLog1.Open; + + btnISAM.Enabled := JvNTEventLog1.Active; + BtnLog.Enabled := JvNTEventLog1.Active; +end; + +end. diff --git a/jvcl/run/JvNTEventLog.pas b/jvcl/run/JvNTEventLog.pas index 95d49d4..8da1b7a 100644 --- a/jvcl/run/JvNTEventLog.pas +++ b/jvcl/run/JvNTEventLog.pas @@ -63,6 +63,7 @@ type procedure SetSource(const Value: string); procedure SetLog(const Value: string); function GetEventCount: Cardinal; + function DoReadRecord(const Direction: ShortInt; const RecNo: Cardinal = 0): boolean; procedure SeekRecord(N: Cardinal); public constructor Create(AOwner: TComponent); override; @@ -73,6 +74,7 @@ type procedure Last; function Eof: Boolean; procedure Next; + procedure Prior; procedure Seek(N: Cardinal); procedure ReadEventLogs(AStrings: TStrings); property EventCount: Cardinal read GetEventCount; @@ -80,7 +82,7 @@ type published property Server: string read FServer write SetServer; property Source: string read FSource write SetSource; - property Log: string read FLog write SetLog; + property Log: string read FLog write SetLog; // Remove ? Seems to be a proper name for Source but never been actually used property Active: Boolean read FActive write SetActive; property OnChange: TNotifyEvent read FOnChange write FOnChange; end; @@ -96,23 +98,32 @@ type constructor Create(AOwner: TComponent); end; + TEventSeverity = (evsSuccess, evsInfo, evsWarning, evsError ); + TJvNTEventLogRecord = class(TObject) private FEventLog: TJvNTEventLog; FCurrentRecord: Pointer; FOwner: TComponent; - function GetRecordNumber: Cardinal; + FRecordBytesSize: Cardinal; + FNonParsed: boolean; + FEventArgs: array of string; + FComputerName, FEventSource: string; + function GetRecordNumber: Cardinal; {$IFDEF SUPPORTS_INLINE} inline; {$ENDIF} function GetDateTime: TDateTime; - function GetID: DWORD; + function GetRawID: DWORD; {$IFDEF SUPPORTS_INLINE} inline; {$ENDIF} function GetType: string; - function GetStringCount: DWORD; - function GetCategory: Cardinal; + function GetStringCount: DWORD; {$IFDEF SUPPORTS_INLINE} inline; {$ENDIF} + function GetCategory: Cardinal; {$IFDEF SUPPORTS_INLINE} inline; {$ENDIF} function GetSource: string; function GetComputer: string; function GetSID: PSID; function GetString(Index: Cardinal): string; function GetMessageText: string; function GetUsername: string; + procedure SetRecordBytesSize(const Value: Cardinal); + property RecordBytesSize: Cardinal read FRecordBytesSize write SetRecordBytesSize; + function TryParseRecord(BytesRead: Cardinal = 0): boolean; public constructor Create(AOwner: TComponent); property RecordNumber: Cardinal read GetRecordNumber; @@ -121,7 +132,12 @@ type property Category: Cardinal read GetCategory; property Source: string read GetSource; property Computer: string read GetComputer; - property ID: DWORD read GetID; + property ID: DWORD read GetRawID; + function Code: Word; {$IFDEF SUPPORTS_INLINE} inline; {$ENDIF} + function CustomCode: boolean; {$IFDEF SUPPORTS_INLINE} inline; {$ENDIF} + function Facility: Word; + function Severity: TEventSeverity; + function SeverityAsText: string; property StringCount: DWORD read GetStringCount; property SID: PSID read GetSID; property EventString[Index: Cardinal]: string read GetString; @@ -130,6 +146,27 @@ type property Owner: TComponent read FOwner; end; + PEventLogRecord = ^TEventLogRecord; + TEventLogRecord = packed record + Length: DWORD; // Length of full record + Reserved: DWORD; // Used by the service + RecordNumber: DWORD; // Absolute record number + TimeGenerated: DWORD; // Seconds since 1-1-1970 + TimeWritten: DWORD; // Seconds since 1-1-1970 + EventID: DWORD; + EventType: WORD; + NumStrings: WORD; + EventCategory: WORD; + ReservedFlags: WORD; // For Use with paired events (auditing) + ClosingRecordNumber: DWORD; // For Use with paired events (auditing) + StringOffset: DWORD; // Offset from beginning of record + UserSidLength: DWORD; + UserSidOffset: DWORD; + DataLength: DWORD; + DataOffset: DWORD; // Offset from beginning of record + end; + + {$IFDEF UNITVERSIONING} const UnitVersioning: TUnitVersionInfo = ( @@ -144,6 +181,7 @@ implementation uses Registry, + JclStringLists, JvResources; const @@ -154,27 +192,6 @@ const cEventLogBaseKey = 'SYSTEM\CurrentControlSet\Services\EventLog'; -type - PEventLogRecord = ^TEventLogRecord; - TEventLogRecord = record - Length: DWORD; // Length of full record - Reserved: DWORD; // Used by the service - RecordNumber: DWORD; // Absolute record number - TimeGenerated: DWORD; // Seconds since 1-1-1970 - TimeWritten: DWORD; // Seconds since 1-1-1970 - EventID: DWORD; - EventType: WORD; - NumStrings: WORD; - EventCategory: WORD; - ReservedFlags: WORD; // For Use with paired events (auditing) - ClosingRecordNumber: DWORD; // For Use with paired events (auditing) - StringOffset: DWORD; // Offset from beginning of record - UserSidLength: DWORD; - UserSidOffset: DWORD; - DataLength: DWORD; - DataOffset: DWORD; // Offset from beginning of record - end; - //=== { TJvNTEventLog } ====================================================== constructor TJvNTEventLog.Create(AOwner: TComponent); @@ -194,6 +211,7 @@ begin inherited Destroy; end; + procedure TJvNTEventLog.SetActive(Value: Boolean); begin if Value <> FActive then @@ -250,7 +268,7 @@ end; function TJvNTEventLog.GetEventCount: Cardinal; begin if Active then - GetNumberOfEventLogRecords(FLogHandle, Result) + Win32Check( GetNumberOfEventLogRecords(FLogHandle, Result) ) else Result := 0; end; @@ -299,51 +317,56 @@ begin (FLastError = ERROR_HANDLE_EOF); end; -procedure TJvNTEventLog.Next; +function TJvNTEventLog.DoReadRecord(const Direction: ShortInt; + const RecNo: Cardinal): boolean; var - BytesRead, BytesNeeded, Flags: DWORD; + Flags: DWORD; + BytesRead, BytesNeeded: Cardinal; Dummy: Char; begin - Flags := EVENTLOG_SEQUENTIAL_READ; - Flags := Flags or EVENTLOG_FORWARDS_READ; + if Direction = 0 + then Flags := EVENTLOG_SEEK_READ + else Flags := EVENTLOG_SEQUENTIAL_READ; + if Direction < 0 + then Flags := Flags or EVENTLOG_BACKWARDS_READ + else Flags := Flags or EVENTLOG_FORWARDS_READ; - ReadEventLog(FLogHandle, Flags, 0, @Dummy, 0, BytesRead, BytesNeeded); + Result := False; + ReadEventLog(FLogHandle, Flags, RecNo, @Dummy, 0, BytesRead, BytesNeeded); FLastError := GetLastError; if FLastError = ERROR_INSUFFICIENT_BUFFER then begin - ReallocMem(FEventRecord.FCurrentRecord, BytesNeeded); - if not ReadEventLog(FLogHandle, Flags, 0, FEventRecord.FCurrentRecord, BytesNeeded, BytesRead, BytesNeeded) then + FEventRecord.RecordBytesSize := BytesNeeded; + if not ReadEventLog(FLogHandle, Flags, RecNo, FEventRecord.FCurrentRecord, BytesNeeded, BytesRead, BytesNeeded) then RaiseLastOSError; + Result := FEventRecord.TryParseRecord(BytesRead); +// if not FEventRecord.IsRecordValid(BytesRead) then +// Raise EIntError.Create(ClassName + ': Invalid WinNT Event structure.'); end else if FLastError <> ERROR_HANDLE_EOF then RaiseLastOSError; end; +procedure TJvNTEventLog.Next; +begin + DoReadRecord(+1); +end; + +procedure TJvNTEventLog.Prior; +begin + DoReadRecord(-1); +end; + procedure TJvNTEventLog.SeekRecord(N: Cardinal); var - Offset, Flags: DWORD; - BytesRead, BytesNeeded: Cardinal; - Dummy: Char; - RecNo: Integer; + Offset: DWORD; + RecNo: Cardinal; begin - GetOldestEventLogRecord(FLogHandle, Offset); + Win32Check( GetOldestEventLogRecord(FLogHandle, Offset) ); RecNo := N + Offset; - Flags := EVENTLOG_SEEK_READ; - Flags := Flags or EVENTLOG_FORWARDS_READ; - - ReadEventLog(FLogHandle, Flags, RecNo, @Dummy, 0, BytesRead, BytesNeeded); - FLastError := GetLastError; - if FLastError = ERROR_INSUFFICIENT_BUFFER then - begin - ReallocMem(FEventRecord.FCurrentRecord, BytesNeeded); - if not ReadEventLog(FLogHandle, Flags, RecNo, FEventRecord.FCurrentRecord, BytesNeeded, BytesRead, BytesNeeded) then - RaiseLastOSError; - end - else - if FLastError <> ERROR_HANDLE_EOF then - RaiseLastOSError; + DoReadRecord(0, RecNo); end; procedure TJvNTEventLog.Seek(N: Cardinal); @@ -421,6 +444,70 @@ begin FOwner := AOwner; end; +function TJvNTEventLogRecord.TryParseRecord(BytesRead: Cardinal): boolean; +Var CR: PEventLogRecord; + PLen2: PCardinal; LastDataOffs: Cardinal; + i: integer; + + ParsingStringPtr: PChar; + function ParseString(const InitOffset: Cardinal = 0): string; + begin + if InitOffset <> 0 then + Cardinal(ParsingStringPtr) := Cardinal(CR) + InitOffset; + + Result := ParsingStringPtr; + Inc(ParsingStringPtr, Length(Result) + 1); + end; +begin + if BytesRead = 0 then BytesRead := RecordBytesSize; + + Result := False; + if BytesRead < RecordBytesSize then exit; + if FCurrentRecord = nil then exit; + + CR := FCurrentRecord; + if RecordBytesSize < SizeOf(CR^) then exit; + if RecordBytesSize < CR^.Length then exit; + + LastDataOffs := RecordBytesSize - SizeOf(PLen2^); + Cardinal(PLen2) := Cardinal(CR) + LastDataOffs; + if PLen2^ <> CR^.Length then exit; + + if CR^.Reserved <> $654c664c then exit; + + if (CR^.UserSidOffset <> 0) and (CR^.UserSidLength <> 0) then + if CR^.UserSidOffset + CR^.UserSidLength > LastDataOffs then exit; + + if (CR^.DataOffset <> 0) and (CR^.DataLength <> 0) then + if CR^.DataOffset + CR^.DataLength > LastDataOffs then exit; + + if CR^.StringOffset > LastDataOffs then exit; + + FEventSource := ParseString( SizeOf(TEventLogRecord) ); + FComputerName := ParseString(); + + SetLength(FEventArgs, CR^.NumStrings); + if Length(FEventArgs) > 0 then begin + i := 0; + FEventArgs[i] := ParseString(CR^.StringOffset); + While True do begin + Inc(i); + if i > High(FEventArgs) then break; + FEventArgs[i] := ParseString(); + end; + end; + + Result := True; + FNonParsed := False; +end; + +procedure TJvNTEventLogRecord.SetRecordBytesSize(const Value: Cardinal); +begin + ReallocMem(FCurrentRecord, Value); + FRecordBytesSize := Value; + FNonParsed := True; +end; + function TJvNTEventLogRecord.GetRecordNumber: Cardinal; begin Result := PEventLogRecord(FCurrentRecord)^.RecordNumber; @@ -429,11 +516,13 @@ end; function TJvNTEventLogRecord.GetMessageText: string; var MessagePath: string; - Count, I: Integer; - P: PChar; - Args, PArgs: ^PChar; + {Count,} I: Integer; +// P: PChar; + Args: array of PChar; +// iArgs: Integer; St: string; reg: TRegistry; + jsl: IJclStringList; function FormatMessageFrom(const DllName: string): Boolean; var @@ -442,64 +531,66 @@ var FullDLLName: array [0..MAX_PATH] of Char; begin Result := False; - ExpandEnvironmentStrings(PChar(DllName), FullDLLName, MAX_PATH); - DllModule := LoadLibraryEx(FullDLLName, 0, LOAD_LIBRARY_AS_DATAFILE); + + DllModule := 0; + if DllName > '' then begin + ExpandEnvironmentStrings(PChar(DllName), FullDLLName, MAX_PATH); + DllModule := LoadLibraryEx(FullDLLName, 0, LOAD_LIBRARY_AS_DATAFILE); + end; if DllModule <> 0 then try - // (rom) memory leak fixed if FormatMessage( - FORMAT_MESSAGE_FROM_HMODULE or FORMAT_MESSAGE_ARGUMENT_ARRAY, - Pointer(DllModule), ID, 0, Buffer, SizeOf(Buffer), Args) > 0 then + FORMAT_MESSAGE_FROM_SYSTEM or FORMAT_MESSAGE_FROM_HMODULE or FORMAT_MESSAGE_ARGUMENT_ARRAY, + Pointer(DllModule), ID, 0, Buffer, Length(Buffer), @Args[Low(Args)]) > 0 then begin Buffer[StrLen(Buffer) - 2] := #0; St := Buffer; Result := True; - end + end else + RaiseLastOSError; finally FreeLibrary(DllModule); end end; begin - St := ''; - Count := StringCount; - GetMem(Args, Count * SizeOf(PChar)); + Result := ''; + + if FNonParsed then + if not TryParseRecord() then + Exit; + + SetLength(Args, Length(FEventArgs)); + for I := Low(Args) to High(Args) do + Args[I] := PChar( FEventArgs[I] ); + + reg := TRegistry.Create; try - PArgs := Args; - P := PEventLogRecord(FCurrentRecord)^.StringOffset + PChar(FCurrentRecord); - for I := 0 to Count - 1 do - begin - PArgs^ := P; - Inc(P, lstrlen(P) + 1); - Inc(PArgs); + reg.RootKey := HKEY_LOCAL_MACHINE; + reg.OpenKeyReadOnly(Format('%s\%s\%s', [cEventLogBaseKey, FEventLog.Source, Self.Source])); + if reg.ReadString('ParameterMessageFile') <> '' then begin + Result := RsLogNotImplParamsFile; // http://delphimaster.net/view/4-65276 + exit; end; - - reg := TRegistry.Create; - try - reg.RootKey := HKEY_LOCAL_MACHINE; - reg.OpenKey(Format('%s\%s\%s', [cEventLogBaseKey, FEventLog.Log, Source]), False); {rw} -// OpenKey(Format('SYSTEM\CurrentControlSet\Services\EventLog\%s\%s', [FEventLog.Log, FEventLog.Source]), False); - MessagePath := reg.ReadString('EventMessageFile'); - finally - reg.Free; + MessagePath := reg.ReadString('EventMessageFile'); + if (MessagePath = '') and (reg.ReadString('ProviderGuid') <> '') then begin + Result := RsLogNotImplVista; + exit; // Vista+ Evt*** new API - someone's welcome to implement end; - - repeat - I := Pos(';', MessagePath); - if I <> 0 then - begin - if FormatMessageFrom(Copy(MessagePath, 1, I - 1 )) then {rw} -// if FormatMessageFrom(Copy(MessagePath, 1, I)) then - Break; - MessagePath := Copy(MessagePath, I + 1, MaxInt); {rw} -// MessagePath := Copy(MessagePath, I, MaxInt); - end - else - FormatMessageFrom(MessagePath); - until I = 0; finally - FreeMem(Args) + reg.Free; end; + + St := ''; + jsl := JclStringList.Split(MessagePath,';').Trim; + + if jsl.Count > 0 then begin + I := 0; + while (I < jsl.Count) and (not FormatMessageFrom(jsl[I])) + do Inc(I); + end else + FormatMessageFrom(''); // last resort: try OS-wide message tables + Result := St; end; @@ -549,22 +640,59 @@ end; function TJvNTEventLogRecord.GetSource: string; begin - Result := PChar(FCurrentRecord) + SizeOf(TEventLogRecord); + Result := ''; + if FNonParsed then + if not TryParseRecord() then + Exit; + + Result := FEventSource; end; function TJvNTEventLogRecord.GetComputer: string; -var - P: PChar; begin - P := PChar(FCurrentRecord) + SizeOf(TEventLogRecord); - Result := P + StrLen(P) + 1; + Result := ''; + if FNonParsed then + if not TryParseRecord() then + Exit; + + Result := FComputerName; end; -function TJvNTEventLogRecord.GetID: DWORD; +function TJvNTEventLogRecord.GetRawID: DWORD; begin + // Raw Event ID, see MSDN for its internal format Result := PEventLogRecord(FCurrentRecord)^.EventID; end; +function TJvNTEventLogRecord.Code: Word; +begin + Result := ID and $0000FFFF; +end; + +function TJvNTEventLogRecord.Facility: Word; +begin + Result := (ID shr 16) and $00000FFF; +end; + +function TJvNTEventLogRecord.CustomCode: boolean; +begin + Result := (ID and $20000000 ) <> 0; +end; + +function TJvNTEventLogRecord.Severity: TEventSeverity; +begin + Byte(Result) := (ID shr 30) and $03; +end; + +const SeverityDescriptions: array [ TEventSeverity] of string = + ( RsLogSuccess, RsLogInformation, RsLogWarning, RsLogERROR); + +function TJvNTEventLogRecord.SeverityAsText: string; +begin + Result := SeverityDescriptions[Severity]; +end; + + function TJvNTEventLogRecord.GetStringCount: DWORD; begin Result := PEventLogRecord(FCurrentRecord)^.NumStrings; @@ -583,20 +711,14 @@ begin end; function TJvNTEventLogRecord.GetString(Index: Cardinal): string; -var - P: PChar; begin Result := ''; - if Index < StringCount then - begin - P := PChar(FCurrentRecord) + PEventLogRecord(FCurrentRecord)^.StringOffset; - while Index > 0 do - begin - Inc(P, StrLen(P) + 1); - Dec(Index); - end; - Result := StrPas(P); - end; + + if FNonParsed then + if not TryParseRecord() then + Exit; + + Result := FEventArgs[Index]; end; function TJvNTEventLogRecord.GetDateTime: TDateTime; diff --git a/jvcl/run/JvResources.pas b/jvcl/run/JvResources.pas index 9ec152a..1d35818 100644 --- a/jvcl/run/JvResources.pas +++ b/jvcl/run/JvResources.pas @@ -1529,9 +1529,12 @@ resourcestring RsLogError = 'Error'; RsLogWarning = 'Warning'; RsLogInformation = 'Information'; + RsLogSuccess = 'Success'; RsLogSuccessAudit = 'Success Audit'; RsLogFailureAudit = 'Failure Audit'; RsLogUserSIDNotFound = 'User SID not found'; + RsLogNotImplVista = 'Not implemented: Vista/Server2008 new API ("Evt***" functions).'; + RsLogNotImplParamsFile = 'Not implemented: custom parameters file parsing.'; //=== JvObjectPickerDialog.pas =============================================== resourcestring -- 1.8.3.msysgit.0 |
2013-09-02 14:47
|
0002-6160-fixed-obtaining-user-name-and-SID.patch (1,749 bytes)
From c3fb14a4f7c5fd76cc3b73109b5cb5e0137350f4 Mon Sep 17 00:00:00 2001 From: the-Arioch <the_Arioch@nm.ru> Date: Mon, 2 Sep 2013 16:35:14 +0400 Subject: [PATCH] #6160 fixed obtaining user name and SID --- jvcl/run/JvNTEventLog.pas | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/jvcl/run/JvNTEventLog.pas b/jvcl/run/JvNTEventLog.pas index 8da1b7a..8b8cf0b 100644 --- a/jvcl/run/JvNTEventLog.pas +++ b/jvcl/run/JvNTEventLog.pas @@ -27,6 +27,12 @@ unit JvNTEventLog; {$I jvcl.inc} {$I windowsonly.inc} +{$IfNDef CPU386} According to MSDN Win64 requires va_list usage in FormatMessage, so it would deny this component calls. {$EndIf} + +//TODO: Make Win64 compatible ( va_* arguments for FormatMessage(...), Pointers math (same datatypes in Delphi 7 and XE2/x64) +//TODO: Make Vista+ compatible ( New GUID-based Events API, codename "Crimson", Evt**** WinAPI functions ) +//TODO: Make Win2000/XP compatible: ( Parameters Substitution files loading and parsing ) +// ...someone who cares is welcome to implement. interface @@ -45,7 +51,7 @@ type TJvNTEventLogRecord = class; {$IFDEF RTL230_UP} - [ComponentPlatformsAttribute(pidWin32 or pidWin64)] + [ComponentPlatformsAttribute(pidWin32)] {$ENDIF RTL230_UP} TJvNTEventLog = class(TJvComponent) private @@ -707,7 +713,7 @@ function TJvNTEventLogRecord.GetSID: PSID; begin Result := nil; if PEventLogRecord(FCurrentRecord)^.UserSidLength > 0 then - Result := PSID(PChar(FCurrentRecord) + PEventLogRecord(FCurrentRecord)^.UserSidOffset); + Cardinal(Result) := Cardinal(FCurrentRecord) + PEventLogRecord(FCurrentRecord)^.UserSidOffset; end; function TJvNTEventLogRecord.GetString(Index: Cardinal): string; -- 1.8.3.msysgit.0 |
2013-09-02 14:49
|
JvNTEventLog Updated.7z (93,350 bytes) |
|
Delphi86, did you tried this ? Do you still have problems ? |
2013-10-08 17:11
|
0003-jvcl_NTEventLog_Win32-only.patch (2,432 bytes)
--- jvcl/design/JvSystemReg.pas | 6 ++++-- jvcl/packages/xml/JvSystem-R.xml | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/jvcl/design/JvSystemReg.pas b/jvcl/design/JvSystemReg.pas index 7581eef..97260f0 100644 --- a/jvcl/design/JvSystemReg.pas +++ b/jvcl/design/JvSystemReg.pas @@ -38,10 +38,11 @@ uses Controls, FiltEdit, DesignEditors, DesignIntf, JvDsgnConsts, + {$IfDef CPU386}JvNTEventLog, {$EndIf} JvClipboardMonitor, JvClipboardViewer, JvHidControllerClass, JvDragDrop, JvDdeCmd, JvAppCommand, JvScreenSaveSuppress, JvWndProcHook, JvSysRequirements, JvMRUList, JvMRUManager, JvCommStatus, JvJoystick, - JvNTEventLog, JvRas32, JvAppInst, JvScreenSaver, + JvRas32, JvAppInst, JvScreenSaver, JvShellHook, JvSHFileOperation, JvSoundControl, JvChangeNotify, JvSearchFiles, JvPerfMon95, JvComputerInfoEx, JvChangeNotifyEditor, JvPerfStatEditor, JvTimerList, JvTimerListEditor, @@ -68,7 +69,8 @@ begin TJvAppDdeCmd, TJvHidDeviceController, TJvDropTarget, TJvDragDrop, TJvAppCommand, TJvScreenSaveSuppressor, TJvSysRequirements]); RegisterComponents(RsPaletteSystem, [{TJvComputerInfo, // - do not register this component as default} - TJvSHFileOperation, TJvChangeNotify, TJvAppInstances, TJvNTEventLog, + TJvSHFileOperation, TJvChangeNotify, TJvAppInstances, + {$IfDef CPU386} TJvNTEventLog, {$EndIf} TJvMailSlotServer, TJvMailSlotClient, TJvScreenSaver, TJvJoystick, TJvSoundControl, TJvPerfStat95, TJvComputerInfoEx, TJvDebugHandler]); diff --git a/jvcl/packages/xml/JvSystem-R.xml b/jvcl/packages/xml/JvSystem-R.xml index 812885d..2e64431 100644 --- a/jvcl/packages/xml/JvSystem-R.xml +++ b/jvcl/packages/xml/JvSystem-R.xml @@ -38,7 +38,7 @@ <File Name="..\..\run\JvJoystick.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\run\JvMRUList.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\run\JvMRUManager.pas" Targets="all" Formname="" Condition=""/> - <File Name="..\..\run\JvNTEventLog.pas" Targets="all" Formname="" Condition=""/> + <File Name="..\..\run\JvNTEventLog.pas" Targets="all_win32" Formname="" Condition=""/> <File Name="..\..\run\JvPerfMon95.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\run\JvRas32.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\run\JvScreenResolution.pas" Targets="all" Formname="" Condition=""/> |
|
No, I haven't tried this yet. I'm currently working on an exam over a longer period of time and had no time. I solved my problem using WMI. But I will try this in the next two weeks, WMI isn't a good solution. |
|
Finished my stuff. Can work on this problem. So... What shall I do exactly. Tried it with the latest development snapshot (3.48). Still the same issue. Sorry, but I haven't worked with Delphi in the last months. I'm totally out of practice :( |
|
This was not merged into trunk, at least not until something would really test it. Sincerely i don't know if jfudickar is part of the team. If not, then maybe none of the team read this yet. There i think nothing changed in this regard in dailies. You can compare JvNTEvents.pas of this daily and your prior one. Or even easier, right-click on JvNTEvents.pas and go menu Tortoise Git -> history and see if any changes were made since day you registered this ticker. Somewhat reworked module and demo are attached to this ticket, either in format of patches or as 7z blob. Take what suits you best and try them. |
|
Ah, I havent's seen that there have been added attachments. This is my first ticket, so I'm not familiar with this. But yes, your updated JvNTEvents.pas worked for me. But how to use the patches? Neber worked with such files. |
|
Well, those patch-files were created by Git and contain references to Git history, so i don't actually know if you can apply them automatically without having Git installed. Maybe tools like KDiff3, WinMerge, DiffMerge and similar can be used to some extent. Or you just can read those patch files yourselves and see the changes, which then you'd manually apply. |
|
Hello, I had the same problem. JvNTEventLog Updated.7z worked except the MessageText is wrong. This changes are not in the latest repo. Is this right? |
Date Modified | Username | Field | Change |
---|---|---|---|
2013-07-06 16:54 | Delphi86 | New Issue | |
2013-07-06 16:54 | Delphi86 | File Added: Issues.bmp | |
2013-08-31 04:16 | Arioch | Note Added: 0020614 | |
2013-08-31 04:16 | Arioch | Status | new => feedback |
2013-09-01 00:19 | Delphi86 | Note Added: 0020618 | |
2013-09-01 00:19 | Delphi86 | File Added: JvNTEventLog Demo.rar | |
2013-09-01 00:24 | Delphi86 | Note Added: 0020619 | |
2013-09-01 12:52 | Arioch | Note Added: 0020620 | |
2013-09-01 12:53 | Arioch | Note Edited: 0020620 | |
2013-09-01 12:58 | Arioch | Note Added: 0020621 | |
2013-09-01 21:46 | jfudickar | Note Added: 0020625 | |
2013-09-02 14:07 | Arioch | Note Added: 0020626 | |
2013-09-02 14:07 | Arioch | Status | feedback => confirmed |
2013-09-02 14:10 | Arioch | File Added: JvNTEventLog Updated.7z | |
2013-09-02 14:11 | Arioch | Note Added: 0020627 | |
2013-09-02 14:16 | Arioch | Note Added: 0020628 | |
2013-09-02 14:16 | Arioch | File Added: 0001-6160-TJvNTEventLog.patch | |
2013-09-02 14:18 | Arioch | Note Edited: 0020627 | |
2013-09-02 14:47 | Arioch | File Added: 0002-6160-fixed-obtaining-user-name-and-SID.patch | |
2013-09-02 14:49 | Arioch | File Deleted: JvNTEventLog Updated.7z | |
2013-09-02 14:49 | Arioch | File Added: JvNTEventLog Updated.7z | |
2013-09-02 14:50 | Arioch | Note Edited: 0020626 | |
2013-09-02 14:51 | Arioch | Note Edited: 0020627 | |
2013-10-08 16:45 | Arioch | Relationship added | parent of 0006209 |
2013-10-08 16:46 | Arioch | Note Added: 0020656 | |
2013-10-08 17:11 | Arioch | File Added: 0003-jvcl_NTEventLog_Win32-only.patch | |
2013-10-09 21:35 | Delphi86 | Note Added: 0020658 | |
2013-10-22 23:19 | Delphi86 | Note Added: 0020681 | |
2013-10-23 08:27 | Arioch | Note Added: 0020682 | |
2013-10-23 19:15 | Delphi86 | Note Added: 0020683 | |
2013-10-24 08:18 | Arioch | Note Added: 0020685 | |
2017-04-20 11:19 | Pannier | Note Added: 0021424 |