Как получить дату установки Windows?
procedure TForm1.Button1Click(Sender: TObject);
var
ZoneName, tmp: string;
UTC: Integer;
InstallDate: DWORD;
_date, _time: DWORD;
t: TDateTime;
begin
Reg := TRegistry.Create;
Reg.RootKey := HKEY_LOCAL_MACHINE;
// Получение часового пояса if Reg.OpenKeyReadOnly( 'SYSTEM\CurrentControlSet\Control\TimeZoneInformation' ) then
begin
ZoneName := Reg.ReadString( 'TimeZoneKeyName' );
Reg.CloseKey;
if Reg.OpenKeyReadOnly( 'SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones\' + ZoneName ) then
begin
tmp := Reg.ReadString( 'Display' );
UTC := StrToInt( Copy( tmp, 5, 3 ) );
// Тут лучше использовать регулярное выражение Reg.CloseKey;
end;
end;
// Определение даты установки Windows
if Reg.OpenKeyReadOnly( 'SOFTWARE\Microsoft\Windows NT\CurrentVersion' ) then begin
InstallDate := Reg.ReadInteger( 'InstallDate' );
_date := InstallDate div 86400;
_time := InstallDate mod 86400;
t := {дата} EncodeDate( 1970, 1, 1 ) + _date + {время} EncodeTime( _time div 3600 + UTC, ( _time div 60 ) mod 60, _time mod 60, 0 ); ShowMessage( DateTimeToStr( t ) );
end;
Reg.CloseKey;
Reg.Free;
end; |