![]() |
Subscribing to Windows Events / winevt.h API
Hallo zusammen,
im MSDN habe ich die Möglichkeit gefunden, sich auf ein EventLog aufzuschalten, um sofort über neue Ereignisse informiert zu werden: ![]() Ich möchte regelmäßig die neuen Events auslesen und in eine SQL-Datenbank schreiben. Ein regelmäßiges Polling mit GetNumberOfEventLogRecords und Co halte für ungeeignet, deshalb wollte ich über dieses Subscribing gehen. Ich finde aber keine .dcu oder ähnliches, um z.B. die API-Funtkion ![]() In der SuFu habe ich jede Menge Treffer zum Schreiben und Lesen des EventLogs gefunden, aber nichts, was sich direkt mit der Windows Event API beschäftigt. Auch Google schweigt sich in Zusammenhang mit Delphi darüber aus. Hat sich schonmal jemand damit beschäftigt und weiß evtl. weiter? Vielen Dank schonmal! Gruß, SirTwist |
Re: Subscribing to Windows Events / winevt.h API
Du kannst die Funktion doch einfach selber einbinden oder nicht? :gruebel:
Wenn du aber WinXP unterstützen möchtest, musst du die dll dynamisch einbinden, das ist etwas mehr Schreibarbeit ... Kurz zusammenkopiert:
Delphi-Quellcode:
Ohne Gewähr ;)
function EvtSubscribe(
Session: Handle; SignalEvent: Handle; ChannelPath: PAnsiChar; Query: PAnsiChar; Bookmark: Handle; context: Pointer; Callback: Pointer; Flags: DWORD ): Handle; stdcall; external 'Wevtapi.dll' name 'EvtSubscribe'; |
Re: Subscribing to Windows Events / winevt.h API
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
|
Re: Subscribing to Windows Events / winevt.h API
Zitat:
An einer Stelle verwendest Du einen Typ ULONGLONG, der bei mir aber undefiniert ist. Ich habe einen type ULONGLONG = UInt64; gemacht, damit geht es dann. Ich bin jetzt gerade daran, den Beispielcode von der MSDN-Seite zu übersetzen. Mal gucken, wie weit ich komme. Wenn alles klappt, häng ich das Ergebnis mal hier ran. Gruß, SirTwist |
Re: Subscribing to Windows Events / winevt.h API
Zitat:
Ich musste die Unit vorhin aktualisieren, da ich TEvtVariant falsch übersetzt hatte (Kommentar "//NOTE:" am Ende von TEvtVariant). Grundsätzlich ist die Übersetzung sehr strikt/typsicher, was man bei Bedarf anpassen kann/muss (TFoo = type Bar -> TFoo = Bar). |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:11 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz