AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein EventLog speichern/in Anwendung importieren
Thema durchsuchen
Ansicht
Themen-Optionen

EventLog speichern/in Anwendung importieren

Ein Thema von ByTheTime · begonnen am 9. Jun 2013 · letzter Beitrag vom 13. Jun 2013
Antwort Antwort
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#1

AW: EventLog speichern/in Anwendung importieren

  Alt 10. Jun 2013, 18:00
Delphi-Quellcode:
      if not VarIsNull(FWbemObject.Data) then
      begin
        for I := VarArrayLowBound(FWbemObject.Data,1) to VarArrayLowBound(FWbemObject.Data,1) do
          Showmessage(IntToStr(FWbemObject.Data[I])); // Array of Uint8
      end;

      if not VarIsNull(FWbemObject.InsertionStrings) then
      begin
        for I := VarArrayLowBound(FWbemObject.InsertionStrings,1) to VarArrayLowBound(FWbemObject.InsertionStrings,1) do
          Showmessage(FWbemObject.InsertionStrings[I]);
      end;
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
ByTheTime

Registriert seit: 24. Sep 2011
Ort: Frankfurt
297 Beiträge
 
Delphi XE2 Architect
 
#2

AW: EventLog speichern/in Anwendung importieren

  Alt 10. Jun 2013, 19:13
Okay danke Bin schon ein ganzes Stück weiter gekommen. Hier mal mein Code-Schnippsel. Ist zwar jetzt unschön programmiert, aber ich habe es jetzt für meine Experimete erstmal hingezweckt:

Delphi-Quellcode:
procedure TfrmMain.GetWin32_NTLogEventInfo;
const
  WbemUser = '';
  WbemPassword = '';
  WbemComputer = 'localhost';
  wbemFlagForwardOnly = $00000020;
var
  FSWbemLocator: OLEVariant;
  FWMIService: OLEVariant;
  FWbemObjectSet: OLEVariant;
  FWbemObject: OLEVariant;
  oEnum: IEnumvariant;
  iValue: LongWord;
  Insertion: array of String;
  Data: array of Byte;
  I: integer;
begin;
  FSWbemLocator := CreateOleObject('WbemScripting.SWbemLocator');
  FWMIService := FSWbemLocator.ConnectServer(WbemComputer, 'root\CIMV2',
    WbemUser, WbemPassword);
  FWbemObjectSet := FWMIService.ExecQuery
    ('SELECT * FROM Win32_NTLogEvent Where Logfile=''Application''', 'WQL',
    wbemFlagForwardOnly); // Wird hier das Log angegeben?!
  oEnum := IUnknown(FWbemObjectSet._NewEnum) as IEnumvariant;
  while oEnum.Next(1, FWbemObject, iValue) = 0 do
  begin
    try

      if not VarIsNull(FWbemObject.Data) then
        if not VarIsNull(FWbemObject.InsertionStrings) then
        begin
          Data := FWbemObject.Data;
          Insertion := FWbemObject.InsertionStrings;
          for I := VarArrayLowBound(Data, 1) to VarArrayLowBound(Data, 1) do
            MLog.Lines.Add('Code ' + IntToStr(Data[I]) + ':' + Insertion[I]);
        end;

    except
      on E: Exception do
      begin
        MessageDlg(E.Message, mtError, [mbOK], 0);
      end;
    end;

    FWbemObject := Unassigned;
  end;
end;
Allerdings weiß ich nicht, aus welchem Log er das ausließt Laut dem Code zufolge ja aus dem Application-Log. Ich kann das irgendwie in keinen sinvollen zusammenhang setzen
Lukas
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#3

AW: EventLog speichern/in Anwendung importieren

  Alt 10. Jun 2013, 19:28
Die Frage/Antwort aus dem Link war anscheinend schon beschränkt auf Knackpunkte mit den Arrays.
Der weiterführende Link auf Rodrigo's Seite zeigt was noch alles zu bekommen ist.
Gegf. sind ja die Projekte WMI Class Generator oder WMI Delphi Code Creator auch etwas für Dich.
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
ByTheTime

Registriert seit: 24. Sep 2011
Ort: Frankfurt
297 Beiträge
 
Delphi XE2 Architect
 
#4

AW: EventLog speichern/in Anwendung importieren

  Alt 10. Jun 2013, 20:35
Ah danke, habe den link oben im 1. Post aus stack irgendwie eben erst bemerkt, da steht ja noch einiges Ich glaube vom WMI Generator lass ich aber erstmal die Finger, sieht total umfangreich aus. Ich möchte eigentlich nur prüfen, ob die aktuellste zeile einen fehler enthält. Also wenn eine Zeile dazukommt, das Programm diese ausließt, sich "anschaut" z.B. den Code und dann eben diesen weiterverarbeitet (wenn da zum beispiel kommt, Code 21, Update nicht erfolgreich). Dazu scheint mir der Inhalt der Seite erstmal zu reichen.
Lukas
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.929 Beiträge
 
Delphi 12 Athens
 
#5

AW: EventLog speichern/in Anwendung importieren

  Alt 10. Jun 2013, 21:24
Events lesen geht viel einfacher über die entsprechende EventLogging API, z.B. mit ReadEventLog:
http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

AW: EventLog speichern/in Anwendung importieren

  Alt 10. Jun 2013, 22:35
Eventuell hilft dir der EventLogLister von Assarbad weiter: http://assarbad.net/en/stuff
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
ByTheTime

Registriert seit: 24. Sep 2011
Ort: Frankfurt
297 Beiträge
 
Delphi XE2 Architect
 
#7

AW: EventLog speichern/in Anwendung importieren

  Alt 11. Jun 2013, 20:54
@Luckie: Ja, ich kenne das Programm schon, allerding läuft es bei mir nicht.
@jaenicke: Danke, das arbeite ich alles mal durch.

Allerdings habe ich mir gerade die JvNTEventLog Komponente aus der JEDI Komponentensammlung angeschaut. Die würde für meine Zwecke schon reichen. Es funktioniert auch fast alles super, allerdings ist sehr interessant das Events, welche von AntiVir stammen nicht richtig gelesen werden können. Wenn ich z.B. die Event ID auslese, steht nicht wie unter Computer>Verwaltung>Ereignissanzeige>Anwendungen ID 4120, sondern bekomme ich 1073745944 ausgegeben
Lukas
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:10 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