├── .gitattributes ├── .gitignore ├── LICENSE ├── README.md └── src ├── Logger.pas ├── MessageFile.res ├── Unit1.dfm ├── Unit1.pas ├── WindowsEventLogSample.dpr ├── WindowsEventLogSample.dproj ├── WindowsEventLogSample.res └── images ├── 1.PNG ├── 2.PNG ├── 3.PNG └── 4.PNG /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Uncomment these types if you want even more clean repository. But be careful. 2 | # It can make harm to an existing project source. Read explanations below. 3 | # 4 | # Resource files are binaries containing manifest, project icon and version info. 5 | # They can not be viewed as text or compared by diff-tools. Consider replacing them with .rc files. 6 | #*.res 7 | # 8 | # Type library file (binary). In old Delphi versions it should be stored. 9 | # Since Delphi 2009 it is produced from .ridl file and can safely be ignored. 10 | #*.tlb 11 | # 12 | # Diagram Portfolio file. Used by the diagram editor up to Delphi 7. 13 | # Uncomment this if you are not using diagrams or use newer Delphi version. 14 | #*.ddp 15 | # 16 | # Visual LiveBindings file. Added in Delphi XE2. 17 | # Uncomment this if you are not using LiveBindings Designer. 18 | #*.vlb 19 | # 20 | # Deployment Manager configuration file for your project. Added in Delphi XE2. 21 | # Uncomment this if it is not mobile development and you do not use remote debug feature. 22 | #*.deployproj 23 | # 24 | # C++ object files produced when C/C++ Output file generation is configured. 25 | # Uncomment this if you are not using external objects (zlib library for example). 26 | #*.obj 27 | # 28 | 29 | # Delphi compiler-generated binaries (safe to delete) 30 | *.exe 31 | *.dll 32 | *.bpl 33 | *.bpi 34 | *.dcp 35 | *.so 36 | *.apk 37 | *.drc 38 | *.map 39 | *.dres 40 | *.rsm 41 | *.tds 42 | *.dcu 43 | *.lib 44 | *.a 45 | *.o 46 | *.ocx 47 | 48 | # Delphi autogenerated files (duplicated info) 49 | *.cfg 50 | *.hpp 51 | *Resource.rc 52 | 53 | # Delphi local files (user-specific info) 54 | *.local 55 | *.identcache 56 | *.projdata 57 | *.tvsconfig 58 | *.dsk 59 | 60 | # Delphi history and backups 61 | __history/ 62 | __recovery/ 63 | *.~* 64 | 65 | # Castalia statistics file (since XE7 Castalia is distributed with Delphi) 66 | *.stat 67 | 68 | # Boss dependency manager vendor folder https://github.com/HashLoad/boss 69 | modules/ 70 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Abdullah ILGAZ 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Windows Event Log with Delphi 2 | This is a sample project demonstrates you how to use windows event logs with Delphi. 3 | 4 | # About 5 | 6 | ## SvcMgr.TEventLogger & TLogger (using Windows.ReportEvent) 7 | You can add your logs to Windows Event Log with **SvcMgr.TEventLogger** and with **TLogger Helper** using **Windows.ReportEvent**. 8 | 9 | ![Logging Example Code](https://raw.githubusercontent.com/theilgazcode/windows-event-log-delphi-sample/main/src/images/3.PNG) 10 | 11 | ## Sample UI Screenshot 12 | Sample project demonstrates you to log your events both way. 13 | 14 | ![VCL Application UI](https://raw.githubusercontent.com/theilgazcode/windows-event-log-delphi-sample/main/src/images/2.PNG) 15 | 16 | ## Register Your Application to Event Log via Registry 17 | **Important**: If you are going to use WindowsEventLog, you should register your application when you are installing. This requires administrative rights. 18 | 19 | ![Registry](https://raw.githubusercontent.com/theilgazcode/windows-event-log-delphi-sample/main/src/images/4.PNG) 20 | 21 | ## Windows Event Log 22 | ![Windows Event Log](https://raw.githubusercontent.com/theilgazcode/windows-event-log-delphi-sample/main/src/images/1.PNG) 23 | -------------------------------------------------------------------------------- /src/Logger.pas: -------------------------------------------------------------------------------- 1 | unit Logger; 2 | 3 | interface 4 | 5 | type 6 | TLogKind = (lkError, lkInfo, lkWarning); 7 | 8 | TLogger = class 9 | private 10 | class procedure CheckEventLogHandle; 11 | class procedure Write(AEntryType: Word; AEventId: Cardinal; AMessage: string); static; 12 | class procedure WriteError(AMessage: string); static; 13 | class procedure WriteInfo(AMessage: string); static; 14 | class procedure WriteWarning(AMessage: string); static; 15 | public 16 | class var Source: string; 17 | class destructor Destroy; 18 | 19 | class procedure Log(AMessage: string;ALogKind:TLogKind); 20 | 21 | // class procedure AddEventSourceToRegistry; static; 22 | 23 | class procedure AddEventSourceToRegistry(ASource, AFilename: string);static; 24 | end; 25 | 26 | threadvar EventLogHandle: THandle; 27 | 28 | implementation 29 | 30 | uses Windows, Registry, SysUtils; 31 | 32 | class destructor TLogger.Destroy; 33 | begin 34 | if EventLogHandle > 0 then 35 | begin 36 | DeregisterEventSource(EventLogHandle); 37 | end; 38 | end; 39 | 40 | class procedure TLogger.Log(AMessage: string; ALogKind: TLogKind); 41 | begin 42 | case ALogKind of 43 | lkError: Write(EVENTLOG_ERROR_TYPE, 2, AMessage); 44 | lkInfo: Write(EVENTLOG_INFORMATION_TYPE, 2, AMessage); 45 | lkWarning: Write(EVENTLOG_WARNING_TYPE, 2, AMessage); 46 | end; 47 | end; 48 | 49 | class procedure TLogger.WriteInfo(AMessage: string); 50 | begin 51 | Write(EVENTLOG_INFORMATION_TYPE, 2, AMessage); 52 | end; 53 | 54 | class procedure TLogger.WriteWarning(AMessage: string); 55 | begin 56 | Write(EVENTLOG_WARNING_TYPE, 3, AMessage); 57 | end; 58 | 59 | class procedure TLogger.WriteError(AMessage: string); 60 | begin 61 | Write(EVENTLOG_ERROR_TYPE, 4, AMessage); 62 | end; 63 | 64 | class procedure TLogger.CheckEventLogHandle; 65 | begin 66 | if EventLogHandle = 0 then 67 | begin 68 | EventLogHandle := RegisterEventSource(nil, PChar(Source)); 69 | end; 70 | if EventLogHandle <= 0 then 71 | begin 72 | raise Exception.Create('Could not obtain Event Log handle.'); 73 | end; 74 | end; 75 | 76 | class procedure TLogger.Write(AEntryType: Word; AEventId: Cardinal; AMessage: string); 77 | begin 78 | CheckEventLogHandle; 79 | ReportEvent(EventLogHandle, AEntryType, 0, AEventId, nil, 1, 0, @AMessage, nil); 80 | end; 81 | 82 | class procedure TLogger.AddEventSourceToRegistry(ASource, AFilename: string); 83 | var 84 | reg: TRegistry; 85 | begin 86 | reg := TRegistry.Create; 87 | try 88 | reg.RootKey := HKEY_LOCAL_MACHINE; 89 | if reg.OpenKey('\SYSTEM\CurrentControlSet\Services\Eventlog\Application\' + ASource, True) then 90 | begin 91 | reg.WriteString('EventMessageFile', AFilename); 92 | reg.WriteInteger('TypesSupported', 7); 93 | reg.CloseKey; 94 | end 95 | else 96 | begin 97 | raise Exception.Create('Error updating the registry. This action requires administrative rights.'); 98 | end; 99 | finally 100 | reg.Free; 101 | end; 102 | end; 103 | 104 | initialization 105 | 106 | TLogger.Source := 'MyApplicationName'; // Application Name 107 | 108 | end. 109 | -------------------------------------------------------------------------------- /src/MessageFile.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/theilgaz/windows-event-log-delphi-sample/372915f8d9981370ed45df1b6c6a5ca49ad14b3d/src/MessageFile.res -------------------------------------------------------------------------------- /src/Unit1.dfm: -------------------------------------------------------------------------------- 1 | object Form1: TForm1 2 | Left = 0 3 | Top = 0 4 | Caption = 'Windows Event Log Sample' 5 | ClientHeight = 120 6 | ClientWidth = 215 7 | Color = clBtnFace 8 | Font.Charset = DEFAULT_CHARSET 9 | Font.Color = clWindowText 10 | Font.Height = -11 11 | Font.Name = 'Tahoma' 12 | Font.Style = [] 13 | OldCreateOrder = False 14 | PixelsPerInch = 96 15 | TextHeight = 13 16 | object Button1: TButton 17 | Left = 8 18 | Top = 71 19 | Width = 193 20 | Height = 34 21 | Caption = 'Write Log' 22 | TabOrder = 0 23 | OnClick = Button1Click 24 | end 25 | object RadioGroup1: TRadioGroup 26 | Left = 8 27 | Top = 8 28 | Width = 193 29 | Height = 57 30 | TabOrder = 1 31 | end 32 | object rbLogger: TRadioButton 33 | Left = 16 34 | Top = 41 35 | Width = 169 36 | Height = 17 37 | Caption = 'Log with Helper (TLogger)' 38 | TabOrder = 2 39 | end 40 | object rbEventLogger: TRadioButton 41 | Left = 16 42 | Top = 18 43 | Width = 169 44 | Height = 17 45 | Caption = 'Log with SvcMgr.TEventLogger' 46 | Checked = True 47 | TabOrder = 3 48 | TabStop = True 49 | end 50 | end 51 | -------------------------------------------------------------------------------- /src/Unit1.pas: -------------------------------------------------------------------------------- 1 | unit Unit1; 2 | 3 | interface 4 | 5 | uses 6 | Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, 7 | System.Classes, Vcl.Graphics, 8 | Vcl.Controls, Vcl.Forms, Vcl.Dialogs, SvcMgr, Vcl.StdCtrls, Vcl.ExtCtrls; 9 | 10 | type 11 | TForm1 = class(TForm) 12 | Button1: TButton; 13 | RadioGroup1: TRadioGroup; 14 | rbLogger: TRadioButton; 15 | rbEventLogger: TRadioButton; 16 | procedure LogWithSvcMgr; 17 | procedure LogWithHelper; 18 | procedure Button1Click(Sender: TObject); 19 | private 20 | { Private declarations } 21 | public 22 | { Public declarations } 23 | end; 24 | 25 | var 26 | Form1: TForm1; 27 | 28 | implementation 29 | 30 | {$R *.dfm} 31 | 32 | uses Logger; 33 | 34 | procedure TForm1.Button1Click(Sender: TObject); 35 | begin 36 | if rbEventLogger.Checked then 37 | LogWithSvcMgr 38 | else 39 | LogWithHelper; 40 | end; 41 | 42 | procedure TForm1.LogWithHelper; 43 | begin 44 | TLogger.Source := 'MyApplicationName'; 45 | TLogger.Log('This is an information.', lkInfo); 46 | TLogger.Log('This is an error.', lkError); 47 | TLogger.Log('This is an warning.', lkWarning); 48 | end; 49 | 50 | procedure TForm1.LogWithSvcMgr; 51 | begin 52 | 53 | with TEventLogger.Create('MyApplicationName') do 54 | begin 55 | LogMessage('This is an error.', EVENTLOG_SUCCESS, 12345); 56 | LogMessage('This is another error.', EVENTLOG_ERROR_TYPE, 12345); 57 | LogMessage('This is information.', EVENTLOG_INFORMATION_TYPE, 12345); 58 | LogMessage('This is a warning.', EVENTLOG_WARNING_TYPE, 12345); 59 | end; 60 | 61 | end; 62 | 63 | end. 64 | -------------------------------------------------------------------------------- /src/WindowsEventLogSample.dpr: -------------------------------------------------------------------------------- 1 | program WindowsEventLogSample; 2 | 3 | uses 4 | Vcl.Forms, 5 | Unit1 in 'Unit1.pas' {Form1}, 6 | Logger in 'Logger.pas'; 7 | 8 | {$R *.res} 9 | {$R MessageFile.res} 10 | 11 | begin 12 | Application.Initialize; 13 | Application.MainFormOnTaskbar := True; 14 | Application.CreateForm(TForm1, Form1); 15 | TLogger.AddEventSourceToRegistry('MyApplicationName', ParamStr(0)); 16 | Application.Run; 17 | end. 18 | 19 | -------------------------------------------------------------------------------- /src/WindowsEventLogSample.dproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | {0164C2D9-D4D9-4B6A-8208-0960C8374C95} 4 | 18.8 5 | VCL 6 | WindowsEventLogSample.dpr 7 | True 8 | Debug 9 | Win32 10 | 1 11 | Application 12 | 13 | 14 | true 15 | 16 | 17 | true 18 | Base 19 | true 20 | 21 | 22 | true 23 | Base 24 | true 25 | 26 | 27 | true 28 | Base 29 | true 30 | 31 | 32 | true 33 | Cfg_1 34 | true 35 | true 36 | 37 | 38 | true 39 | Base 40 | true 41 | 42 | 43 | true 44 | Cfg_2 45 | true 46 | true 47 | 48 | 49 | .\$(Platform)\$(Config) 50 | .\$(Platform)\$(Config) 51 | false 52 | false 53 | false 54 | false 55 | false 56 | System;Xml;Data;Datasnap;Web;Soap;Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;$(DCC_Namespace) 57 | $(BDS)\bin\delphi_PROJECTICON.ico 58 | $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_44.png 59 | $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_150.png 60 | WindowsEventLogSample 61 | 62 | 63 | DBXSqliteDriver;IndyIPCommon;RESTComponents;bindcompdbx;DBXInterBaseDriver;vcl;IndyIPServer;vclactnband;vclFireDAC;IndySystem;FMXComponents;tethering;svnui;dsnapcon;FireDACADSDriver;FireDACMSAccDriver;fmxFireDAC;vclimg;FireDAC;YxdUI;vcltouch;vcldb;bindcompfmx;svn;FireDACSqliteDriver;FireDACPgDriver;inetdb;soaprtl;DbxCommonDriver;fmx;FireDACIBDriver;fmxdae;xmlrtl;soapmidas;fmxobj;vclwinx;rtl;DbxClientDriver;CustomIPTransport;vcldsnap;dbexpress;IndyCore;vclx;bindcomp;appanalytics;dsnap;fgx;FireDACCommon;IndyIPClient;bindcompvcl;RESTBackendComponents;VCLRESTComponents;soapserver;dbxcds;VclSmp;adortl;vclie;bindengine;DBXMySQLDriver;CloudService;dsnapxml;FireDACMySQLDriver;dbrtl;IndyProtocols;inetdbxpress;EntFMX;FireDACCommonODBC;FireDACCommonDriver;FMXComponentEd;inet;fmxase;$(DCC_UsePackage) 64 | Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace) 65 | Debug 66 | true 67 | CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments= 68 | 1033 69 | $(BDS)\bin\default_app.manifest 70 | 71 | 72 | DBXSqliteDriver;IndyIPCommon;RESTComponents;bindcompdbx;DBXInterBaseDriver;vcl;IndyIPServer;vclactnband;vclFireDAC;IndySystem;tethering;dsnapcon;FireDACADSDriver;FireDACMSAccDriver;fmxFireDAC;vclimg;FireDAC;vcltouch;vcldb;bindcompfmx;FireDACSqliteDriver;FireDACPgDriver;inetdb;soaprtl;DbxCommonDriver;fmx;FireDACIBDriver;fmxdae;xmlrtl;soapmidas;fmxobj;vclwinx;rtl;DbxClientDriver;CustomIPTransport;vcldsnap;dbexpress;IndyCore;vclx;bindcomp;appanalytics;dsnap;FireDACCommon;IndyIPClient;bindcompvcl;RESTBackendComponents;VCLRESTComponents;soapserver;dbxcds;VclSmp;adortl;vclie;bindengine;DBXMySQLDriver;CloudService;dsnapxml;FireDACMySQLDriver;dbrtl;IndyProtocols;inetdbxpress;FireDACCommonODBC;FireDACCommonDriver;inet;fmxase;$(DCC_UsePackage) 73 | 74 | 75 | DEBUG;$(DCC_Define) 76 | true 77 | false 78 | true 79 | true 80 | true 81 | 82 | 83 | false 84 | true 85 | PerMonitorV2 86 | 87 | 88 | false 89 | RELEASE;$(DCC_Define) 90 | 0 91 | 0 92 | 93 | 94 | true 95 | PerMonitorV2 96 | 97 | 98 | 99 | MainSource 100 | 101 | 102 |
Form1
103 | dfm 104 |
105 | 106 | 107 | Cfg_2 108 | Base 109 | 110 | 111 | Base 112 | 113 | 114 | Cfg_1 115 | Base 116 | 117 |
118 | 119 | Delphi.Personality.12 120 | Application 121 | 122 | 123 | 124 | WindowsEventLogSample.dpr 125 | 126 | 127 | 128 | 129 | 130 | WindowsEventLogSample.exe 131 | true 132 | 133 | 134 | 135 | 136 | 1 137 | 138 | 139 | Contents\MacOS 140 | 1 141 | 142 | 143 | 0 144 | 145 | 146 | 147 | 148 | classes 149 | 1 150 | 151 | 152 | classes 153 | 1 154 | 155 | 156 | 157 | 158 | res\xml 159 | 1 160 | 161 | 162 | res\xml 163 | 1 164 | 165 | 166 | 167 | 168 | library\lib\armeabi-v7a 169 | 1 170 | 171 | 172 | 173 | 174 | library\lib\armeabi 175 | 1 176 | 177 | 178 | library\lib\armeabi 179 | 1 180 | 181 | 182 | 183 | 184 | library\lib\armeabi-v7a 185 | 1 186 | 187 | 188 | 189 | 190 | library\lib\mips 191 | 1 192 | 193 | 194 | library\lib\mips 195 | 1 196 | 197 | 198 | 199 | 200 | library\lib\armeabi-v7a 201 | 1 202 | 203 | 204 | library\lib\arm64-v8a 205 | 1 206 | 207 | 208 | 209 | 210 | library\lib\armeabi-v7a 211 | 1 212 | 213 | 214 | 215 | 216 | res\drawable 217 | 1 218 | 219 | 220 | res\drawable 221 | 1 222 | 223 | 224 | 225 | 226 | res\values 227 | 1 228 | 229 | 230 | res\values 231 | 1 232 | 233 | 234 | 235 | 236 | res\values-v21 237 | 1 238 | 239 | 240 | res\values-v21 241 | 1 242 | 243 | 244 | 245 | 246 | res\values 247 | 1 248 | 249 | 250 | res\values 251 | 1 252 | 253 | 254 | 255 | 256 | res\drawable 257 | 1 258 | 259 | 260 | res\drawable 261 | 1 262 | 263 | 264 | 265 | 266 | res\drawable-xxhdpi 267 | 1 268 | 269 | 270 | res\drawable-xxhdpi 271 | 1 272 | 273 | 274 | 275 | 276 | res\drawable-ldpi 277 | 1 278 | 279 | 280 | res\drawable-ldpi 281 | 1 282 | 283 | 284 | 285 | 286 | res\drawable-mdpi 287 | 1 288 | 289 | 290 | res\drawable-mdpi 291 | 1 292 | 293 | 294 | 295 | 296 | res\drawable-hdpi 297 | 1 298 | 299 | 300 | res\drawable-hdpi 301 | 1 302 | 303 | 304 | 305 | 306 | res\drawable-xhdpi 307 | 1 308 | 309 | 310 | res\drawable-xhdpi 311 | 1 312 | 313 | 314 | 315 | 316 | res\drawable-mdpi 317 | 1 318 | 319 | 320 | res\drawable-mdpi 321 | 1 322 | 323 | 324 | 325 | 326 | res\drawable-hdpi 327 | 1 328 | 329 | 330 | res\drawable-hdpi 331 | 1 332 | 333 | 334 | 335 | 336 | res\drawable-xhdpi 337 | 1 338 | 339 | 340 | res\drawable-xhdpi 341 | 1 342 | 343 | 344 | 345 | 346 | res\drawable-xxhdpi 347 | 1 348 | 349 | 350 | res\drawable-xxhdpi 351 | 1 352 | 353 | 354 | 355 | 356 | res\drawable-xxxhdpi 357 | 1 358 | 359 | 360 | res\drawable-xxxhdpi 361 | 1 362 | 363 | 364 | 365 | 366 | res\drawable-small 367 | 1 368 | 369 | 370 | res\drawable-small 371 | 1 372 | 373 | 374 | 375 | 376 | res\drawable-normal 377 | 1 378 | 379 | 380 | res\drawable-normal 381 | 1 382 | 383 | 384 | 385 | 386 | res\drawable-large 387 | 1 388 | 389 | 390 | res\drawable-large 391 | 1 392 | 393 | 394 | 395 | 396 | res\drawable-xlarge 397 | 1 398 | 399 | 400 | res\drawable-xlarge 401 | 1 402 | 403 | 404 | 405 | 406 | res\values 407 | 1 408 | 409 | 410 | res\values 411 | 1 412 | 413 | 414 | 415 | 416 | 1 417 | 418 | 419 | Contents\MacOS 420 | 1 421 | 422 | 423 | 0 424 | 425 | 426 | 427 | 428 | Contents\MacOS 429 | 1 430 | .framework 431 | 432 | 433 | Contents\MacOS 434 | 1 435 | .framework 436 | 437 | 438 | 0 439 | 440 | 441 | 442 | 443 | 1 444 | .dylib 445 | 446 | 447 | 1 448 | .dylib 449 | 450 | 451 | 1 452 | .dylib 453 | 454 | 455 | Contents\MacOS 456 | 1 457 | .dylib 458 | 459 | 460 | Contents\MacOS 461 | 1 462 | .dylib 463 | 464 | 465 | 0 466 | .dll;.bpl 467 | 468 | 469 | 470 | 471 | 1 472 | .dylib 473 | 474 | 475 | 1 476 | .dylib 477 | 478 | 479 | 1 480 | .dylib 481 | 482 | 483 | Contents\MacOS 484 | 1 485 | .dylib 486 | 487 | 488 | Contents\MacOS 489 | 1 490 | .dylib 491 | 492 | 493 | 0 494 | .bpl 495 | 496 | 497 | 498 | 499 | 0 500 | 501 | 502 | 0 503 | 504 | 505 | 0 506 | 507 | 508 | 0 509 | 510 | 511 | 0 512 | 513 | 514 | Contents\Resources\StartUp\ 515 | 0 516 | 517 | 518 | Contents\Resources\StartUp\ 519 | 0 520 | 521 | 522 | 0 523 | 524 | 525 | 526 | 527 | 1 528 | 529 | 530 | 1 531 | 532 | 533 | 1 534 | 535 | 536 | 537 | 538 | 1 539 | 540 | 541 | 1 542 | 543 | 544 | 1 545 | 546 | 547 | 548 | 549 | 1 550 | 551 | 552 | 1 553 | 554 | 555 | 1 556 | 557 | 558 | 559 | 560 | 1 561 | 562 | 563 | 1 564 | 565 | 566 | 1 567 | 568 | 569 | 570 | 571 | 1 572 | 573 | 574 | 1 575 | 576 | 577 | 1 578 | 579 | 580 | 581 | 582 | 1 583 | 584 | 585 | 1 586 | 587 | 588 | 1 589 | 590 | 591 | 592 | 593 | 1 594 | 595 | 596 | 1 597 | 598 | 599 | 1 600 | 601 | 602 | 603 | 604 | 1 605 | 606 | 607 | 1 608 | 609 | 610 | 1 611 | 612 | 613 | 614 | 615 | 1 616 | 617 | 618 | 1 619 | 620 | 621 | 1 622 | 623 | 624 | 625 | 626 | 1 627 | 628 | 629 | 1 630 | 631 | 632 | 1 633 | 634 | 635 | 636 | 637 | 1 638 | 639 | 640 | 1 641 | 642 | 643 | 1 644 | 645 | 646 | 647 | 648 | 1 649 | 650 | 651 | 1 652 | 653 | 654 | 1 655 | 656 | 657 | 658 | 659 | 1 660 | 661 | 662 | 1 663 | 664 | 665 | 1 666 | 667 | 668 | 669 | 670 | 1 671 | 672 | 673 | 1 674 | 675 | 676 | 1 677 | 678 | 679 | 680 | 681 | 1 682 | 683 | 684 | 1 685 | 686 | 687 | 1 688 | 689 | 690 | 691 | 692 | 1 693 | 694 | 695 | 1 696 | 697 | 698 | 1 699 | 700 | 701 | 702 | 703 | 1 704 | 705 | 706 | 1 707 | 708 | 709 | 1 710 | 711 | 712 | 713 | 714 | 1 715 | 716 | 717 | 1 718 | 719 | 720 | 1 721 | 722 | 723 | 724 | 725 | 1 726 | 727 | 728 | 1 729 | 730 | 731 | 1 732 | 733 | 734 | 735 | 736 | 1 737 | 738 | 739 | 1 740 | 741 | 742 | 1 743 | 744 | 745 | 746 | 747 | 1 748 | 749 | 750 | 1 751 | 752 | 753 | 1 754 | 755 | 756 | 757 | 758 | 1 759 | 760 | 761 | 1 762 | 763 | 764 | 1 765 | 766 | 767 | 768 | 769 | 1 770 | 771 | 772 | 1 773 | 774 | 775 | 1 776 | 777 | 778 | 779 | 780 | 1 781 | 782 | 783 | 1 784 | 785 | 786 | 1 787 | 788 | 789 | 790 | 791 | 1 792 | 793 | 794 | 1 795 | 796 | 797 | 798 | 799 | ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 800 | 1 801 | 802 | 803 | ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 804 | 1 805 | 806 | 807 | 808 | 809 | 1 810 | 811 | 812 | 1 813 | 814 | 815 | 816 | 817 | ..\ 818 | 1 819 | 820 | 821 | ..\ 822 | 1 823 | 824 | 825 | 826 | 827 | 1 828 | 829 | 830 | 1 831 | 832 | 833 | 1 834 | 835 | 836 | 837 | 838 | 1 839 | 840 | 841 | 1 842 | 843 | 844 | 1 845 | 846 | 847 | 848 | 849 | ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 850 | 1 851 | 852 | 853 | 854 | 855 | ..\ 856 | 1 857 | 858 | 859 | ..\ 860 | 1 861 | 862 | 863 | 864 | 865 | Contents 866 | 1 867 | 868 | 869 | Contents 870 | 1 871 | 872 | 873 | 874 | 875 | Contents\Resources 876 | 1 877 | 878 | 879 | Contents\Resources 880 | 1 881 | 882 | 883 | 884 | 885 | library\lib\armeabi-v7a 886 | 1 887 | 888 | 889 | library\lib\arm64-v8a 890 | 1 891 | 892 | 893 | 1 894 | 895 | 896 | 1 897 | 898 | 899 | 1 900 | 901 | 902 | 1 903 | 904 | 905 | Contents\MacOS 906 | 1 907 | 908 | 909 | Contents\MacOS 910 | 1 911 | 912 | 913 | 0 914 | 915 | 916 | 917 | 918 | library\lib\armeabi-v7a 919 | 1 920 | 921 | 922 | 923 | 924 | 1 925 | 926 | 927 | 1 928 | 929 | 930 | 931 | 932 | Assets 933 | 1 934 | 935 | 936 | Assets 937 | 1 938 | 939 | 940 | 941 | 942 | Assets 943 | 1 944 | 945 | 946 | Assets 947 | 1 948 | 949 | 950 | 951 | 952 | 953 | 954 | 955 | 956 | 957 | 958 | 959 | 960 | 961 | 962 | True 963 | False 964 | 965 | 966 | 12 967 | 968 | 969 | 970 | 971 |
972 | -------------------------------------------------------------------------------- /src/WindowsEventLogSample.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/theilgaz/windows-event-log-delphi-sample/372915f8d9981370ed45df1b6c6a5ca49ad14b3d/src/WindowsEventLogSample.res -------------------------------------------------------------------------------- /src/images/1.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/theilgaz/windows-event-log-delphi-sample/372915f8d9981370ed45df1b6c6a5ca49ad14b3d/src/images/1.PNG -------------------------------------------------------------------------------- /src/images/2.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/theilgaz/windows-event-log-delphi-sample/372915f8d9981370ed45df1b6c6a5ca49ad14b3d/src/images/2.PNG -------------------------------------------------------------------------------- /src/images/3.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/theilgaz/windows-event-log-delphi-sample/372915f8d9981370ed45df1b6c6a5ca49ad14b3d/src/images/3.PNG -------------------------------------------------------------------------------- /src/images/4.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/theilgaz/windows-event-log-delphi-sample/372915f8d9981370ed45df1b6c6a5ca49ad14b3d/src/images/4.PNG --------------------------------------------------------------------------------