Scrierea de mesaje în jurnalul de evenimente Windows pe Delfi

Aplicația poate înregistra mesaje în jurnalul utilizând următoarele funcții WinAPI. Descrierea detaliată a parametrilor acestor funcții este dată în documentația pentru API.

  • RegisterEventSource - Deschide mânerul pentru a avea acces la jurnalele de pe computerul local sau la distanță.
  • ReportEvent - înregistrarea De fapt mesajul.

Pentru a înregistra mesajele în revista într-un mod simplificat, pur și simplu face un RegisterEventSource apel cu numele mașinii (UNC), jurnalul pe care doriți pentru a posta un mesaj (zero pentru mașina locală), precum și numele evenimentului. numele evenimentului este, de obicei numele aplicației, dar poate fi ceva mai mult informativ. De îndată ce o sursă de eveniment este înregistrat, vă puteți conecta evenimente folosind ReportEvent cu mâner, care au revenit RegisterEventSource.

chei de registry

Creați următoarea cheie de registry:

HKEY_LOCAL_MACHINESYSTEM - CurrentControlSet - Servicii - Eventlog - Cerere -

Creați următoarele taste:

Exemplu de cod pentru a crea intrările de registry necesare:

  • Scrierea sursa fișierului tabel de mesaje (fișier .mc).
  • Compilarea fișier .mc utilizând un mesaj compilator Microsoft.
  • Conectarea pentru a obține informații la cererea noastră Delphi.

Există mai multe exemple privind scrierea .mc fișiere în Windows SDK și pe diferite site-uri web, inclusiv MSDN, deși documentația nu este destul de simplu, astfel încât sunt minime descrierea suficientă pentru a crea fișierul tabelului de mesaje:

Ca rezultat, vom obține trei fișiere: exmess.rc, bin00001.msg și exmess.h. emess.h poate fi folosit ca un fișier antet pentru a accesa resursele pe numele lor simbolice, în cazul în care sunt enumerate (în acest caz, nu este prezent). fișier bin este o rapoarte de resurse binare compilate. rc este un fișier de resurse pentru Windows. Acesta poate fi compilat în fișierul Delphi .RES folosind brcc32.exe - compilator de resurse Delphi sau pur și simplu adăugate la proiect utilizând managerul de proiect, și apoi Delphi se compilează în mod automat atunci când compilați proiectul (build).