![]() |
EventMonTray (NT4/2K/XP/2K3)
Hallo,
hab ein kleines schmutziges Prograemmchen zusammengehackt. Es alarmiert einen, sobald ein neues Ereignis in der Eventlog auftaucht. Es blinkt dann ein TrayIcon! Ansonsten zeigt der TrayIcon-Hint an, wieviele Ereignisse in den einzelnen Logs sind. Doppelklick aufs Icon oeffnet den EventViewer ... Rechtsklick beendet EventMonTray ... sicher noch erweiterungs- und verbesserungsbeduerftig ... aber es ist eben nur ein 2 Stunden-Proggy :mrgreen: Viel Spass damit :) ... ist allerdings nur der "Quick'n'Dirty approach" Die wichtigen Parts sind:
Delphi-Quellcode:
function MonitorThread(lParam: PNotifyIconData): DWORD; stdcall;
var i: Integer; ret: DWORD; begin ResetCounter; for i := 0 to idx - 1 do NotifyChangeEventLog(logs[i], events[i]); while True do begin ret := WaitForMultipleObjects(idx, @events, False, 1000); if ret <> WAIT_TIMEOUT then begin Blink := True; ModifyTrayIconText; end; end; result := 0; end;
Delphi-Quellcode:
Downloadbar als
err := RegOpenKey(HKEY_LOCAL_MACHINE, servicekey, hReg);
if err = ERROR_SUCCESS then try bufsize := sizeof(namebuf); ZeroMemory(@namebuf, bufsize); idx := 0; while RegEnumKeyEx(hReg, idx, @namebuf, bufsize, nil, nil, nil, @ft) = ERROR_SUCCESS do begin events[idx] := CreateEvent(nil, True, False, @Format(EventPrefix, [@namebuf])[1]); logs[idx] := OpenEventLog(nil, @namebuf); SetString(lognames[idx], PChar(@namebuf), lstrlen(@namebuf)); bufsize := sizeof(namebuf); ZeroMemory(@namebuf, bufsize); inc(idx); if idx > maxlogs then Break; end; finally RegCloseKey(hReg); end; ![]() ![]() |
Re: EventMonTray (NT4/2K/XP/2K3)
Respekt!
Kannst du vielleicht diesen Part aus der MonitorThread function nochmal etwas erklären?
Delphi-Quellcode:
for i := 0 to idx - 1 do
NotifyChangeEventLog(logs[i], events[i]); |
Re: EventMonTray (NT4/2K/XP/2K3)
Dabei wird dem System jeweils ein Manual-Reset-Event (events[]) zugewiesen, welches signalisiert wird, sobald ein neuer Record in der Eventlog geschrieben wird.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:49 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