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
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:
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;
Downloadbar als
RAR und
ZIP