Einzelnen Beitrag anzeigen

Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Datum der letzten Änderung eines Registryeintrags prüfen

  Alt 10. Jul 2007, 14:22
Moin Tim,

ich habe Dir mal ein kleines Beispiel erstellt:

Delphi-Quellcode:
function GetLastKeyAccess(const AhRootKey : HKEY;const AsSubKey : string;var AsResult : string) : boolean;

var
  hResult : HKEY;
  ftLastWrite : FILETIME;
  ft : FILETIME;
  st : SYSTEMTIME;

begin
  if RegOpenKeyEx(AhRootKey,PChar(AsSubKey),0,KEY_READ,hResult) <> ERROR_SUCCESS then begin
    AsResult := 'ERROR OPEN: '+SysErrorMessage(GetLastError);
    Result := False;
    Exit;
  end;
  try
    if RegQueryInfoKey(hResult,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,@ftLastWrite) <> ERROR_SUCCESS then begin
      AsResult := 'ERROR QUERY: '+SysErrorMessage(GetLastError);
      Result := False;
    end;
    if not FileTimeToLocalFileTime(ftLastWrite,ft) then begin // An Zeitzone anpassen
      AsResult := 'ERROR CONVERT FT: '+SysErrorMessage(GetLastError);
      Result := False;
      Exit;
    end;
    FillChar(st,SizeOf(st),0);
    if not FileTimeToSystemTime(ft,st) then begin // Zur Ausgabe umwandeln
      AsResult := 'ERROR CONVERT ST: '+SysErrorMessage(GetLastError);
      Result := False;
      Exit;
    end;
    AsResult := Format('%.2d.%.2d.%.4d %.2d:%.2d:%.2d,%.3d',[st.wDay,st.wMonth,st.wYear,st.wHour,st.wMinute,st.wSecond,st.wMilliseconds]);
    Result := True;
  finally
    RegCloseKey(hResult);
  end;
end;
Der Aufruf kann dann so erfolgen:

Delphi-Quellcode:
var
  sResult : string;

begin
  if GetLastKeyAccess(HKEY_LOCAL_MACHINE,'SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon',sResult) then begin
    ShowMessage('Letzte Änderung:'#13#10+sResult);
  end else begin
    ShowMessage('Fehler:'#13#10+sResult);
  end;
end;
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat