![]() |
Registry - Woher TimeStamp nehmen?
Hallo,
ein gesundes neues Jahr. Ein Frage: gibt es eine Möglichkeit, so wie bei Dateien und Verzeichnissen, die Zeitstempel eines Registrierungsschlüssels auszulesen, wenn ja über welche API würde es gehen? Für Tipps, Hinweise und Beispiele wie immer dankbar Alter Mann |
Re: Registry - Woher TimeStamp nehmen?
Du meist, wann ein Schlüssel erstellt oder geändert wurde? Meines Wissen gibt es das nicht. Aber wozu braucht man das?
|
Re: Registry - Woher TimeStamp nehmen?
Kann mich da Luckie nur anschließen. Zudem würde das diese Datenbank weiter unnötig aufblähen. Wenn du sowas brauchst, dann musst du eher selbst Einträge anlegen. Oder du steigst auf INI-Files (oder XML, oder oder oder...) um, da kannst du dann mit entsprechenden Daten umgehen.
|
Re: Registry - Woher TimeStamp nehmen?
Dass es sehr wohl geht zeigt regedit:
Exportiert einfach den gewünschten Registry Wert als Text:
Code:
Ich weiss aber nicht, ob dies irgend wie in einer API offengelegt ist.
Schlüsselname: HKEY_LOCAL_MACHINE\SOFTWARE\7-Zip
Klassenname: <KEINE KLASSE> Letzter Schreibzugriff: 15.07.2008 - 20:07 Wert 0 Name: Path Typ: REG_SZ Daten: C:\Program Files\7-Zip |
Re: Registry - Woher TimeStamp nehmen?
Oh, das kannte ich noch nicht. Wieder was dazu gelernt. Aber dann muss es auch eine API geben.
|
Re: Registry - Woher TimeStamp nehmen?
Zitat:
Versuch mal dass.
Delphi-Quellcode:
program Project1; {$APPTYPE CONSOLE} uses Windows, Messages, SysUtils, Registry; var RegDate: TDateTime; RegKeyInfo: TRegKeyInfo; TimeZoneInfo: TTimeZoneInformation; function DateTimeToLocalDateTime(DateTime: TDateTime): TDateTime; begin case GetTimeZoneInformation(TimeZoneInfo) of TIME_ZONE_ID_STANDARD: Result := DateTime - (TimeZoneInfo.Bias / 60 / 24); TIME_ZONE_ID_DAYLIGHT: Result := DateTime - ((TimeZoneInfo.Bias + TimeZoneInfo.DaylightBias) / 60 / 24); else Result := 0; end; end; procedure FileTimeToDateTime(ft: TFileTime; var dt: TDateTime); var SystemTime: TSystemTime; FileTime: TFileTime; begin if FileTimeToLocalFileTime(ft, FileTime) then begin FileTimeToSystemTime(ft, SystemTime); dt := SystemTimeToDateTime(SystemTime); end; end; begin with TRegistry.Create do begin RootKey := HKEY_CURRENT_USER; OpenKey('HKEY_CURRENT_USER\Software\Microsoft\Windows', False); GetKeyInfo(RegKeyInfo); with RegKeyInfo do begin FileTimeToDateTime(FileTime, RegDate); RegDate := DateTimeToLocalDateTime(RegDate); end; writeln(DateTimeToStr(RegDate)); CloseKey; end; readln; end. lg. Astat |
Re: Registry - Woher TimeStamp nehmen?
![]() ![]() ![]() RegQueryInfoKey verwendet Luckie in seinem Win32Api Tut. Jedoch nur um zu sehen, ob der Eintrag existiert. Sonst wie Astat schrieb: ![]() ![]() |
Re: Registry - Woher TimeStamp nehmen?
Hallo
Erst einmal vielen Dank. Das Beispiel von Astat funktioniert soweit. Doch wie sieht es aus, wenn der Schlüssel in dieser Form: Zitat:
Durch das '\\' kann er nicht auf den Schlüssel zugreifen. Jemand eine Idee? Alter Mann |
Re: Registry - Woher TimeStamp nehmen?
Key: '\SYSTEM\MountedDevices\'
Value: '\??\Volume{3028b152-8305-11dd-89c8-806d6172696f}' (REG_BINARY) Bei ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:26 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