![]() |
Ereigniseinträge anzeigen lassen
Hi,
ich versuche mich gerade mehr oder weniger erfolgreich an der Ereignisanzeige :coder: Klappt auch soweit, ich kann den EventLogRecord auslesen. Darin enthalten sind ja auch - StringOffset - UserSidLength - UserSidOffset - DataLength - DataOffset Auch die Auszulesen bekommen ich problemlos hin. Aber ich will auch an: - SourceName - ComputerName - UserSid - Strings - Data Ich finde jetzt aber irgendwie keinen Hinweis, wie ich darauf zugreifen soll. Im EventLogRecord sind ja nur die Offsets und die Längen definiert. Kann mir mal einer auf die Sprünge helfen, ich raffs nich. mfg captnemo |
Re: Ereigniseinträge anzeigen lassen
Ein Teil steckt doch in dem Record drin. Lies dir mal die Seite im PSDK durch, falls du das noch nicht getan haben solltest.
|
Re: Ereigniseinträge anzeigen lassen
Hab ich :-)
Aber dass das in dem Record mit drin ist, hab ich gar nicht so rausgelesen. Aber jetzt wo du's sagst, macht natürlich sinn :mrgreen: Aber wie greife ich zu? Schließlich habe ich z.B. SourceName in der meinem Record-Type gar nicht drin? |
Re: Ereigniseinträge anzeigen lassen
Wenn Borland den Record so nicht übersetzt hat, dann wirst du ihn wohl ausgehende vom Aufbau im PSDK übersetzen müssen.
Ach so, zu SourceName steht was in den Anmerkungen. |
Re: Ereigniseinträge anzeigen lassen
@chewie:
Is klar, aber genau das ist mein Problem. Den Text vom SDK hab ich mir schon durch gelesen. Ich hab aber nicht verstanden, wie ich jetzt SourceName oder Data auslesen soll. Muß ich das in der Typendeklaration erst definieren? Geht ja eigentlich gar nicht anders. Aber ich weiß nicht genau wie ich diese Type deklarieren soll, bzw. wie ich die dann auslesen kann? |
Re: Ereigniseinträge anzeigen lassen
SourceName steht nicht direkt drin, aber Data schon. Du hast die Länge des Data-Blocks (DataLength) und die Speicherposition (DataOffset). Ich weiß jetzt nur nicht, ob diese Adresse absolut ist oder relativ zum Beginn des Records. Herausfinden könnt man es, indem man diese Adresse mit der Adresse des Records vergleicht. Ist erstere Adresse sehr klein (kleiner 100 oder so), handelt es sich wohl um eine relative Adresse. Ansonsten handelt es sich wohl um eine absolute. Evtl. ein paar mal probieren, um Sicherheit zu erhalten.
Wenn du die Adresse hast, brauchst du ne Variable, der du den Kram zuweisen kannst, möglicherweise ein Array of Byte. Dessen Startadresse setzt du auf die oben herausgefundene Speicherposition - et voilà, du hast den Datenblock als Array. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:20 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