|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Прочитать дату установки Windows
Здравствуйте, подскажите пожалуйста как прочитать дату установки Windows в Delphi, пробую так:
Код:
procedure TForm1.Button2Click(Sender: TObject); var Reg: TRegistry; RegKey: DWORD; Key: string; begin Reg := TRegistry.Create; try Reg.RootKey := HKEY_LOCAL_MACHINE; Key := 'SOFTWARE\Microsoft\Windows NT\CurrentVersion'; if Reg.OpenKeyReadOnly(Key) then begin if Reg.ValueExists('InstallDate') then begin RegKey := Reg.ReadInteger('InstallDate'); Reg.CloseKey; ShowMessage(IntToStr(RegKey)); end; end; finally Reg.Free end; end; И ещё, как записать другую дату в реестр. Прошу прощения в Windows 32 bit работает. Как сделать чтобы работало в Windows 64 bit ? Последний раз редактировалось Alex7, 19.11.2019 в 22:07. |
#2
|
||||
|
||||
Попробуйте данный код:
Код:
function GetWindowsInstallDateTime: TDateTime; const RegKeyNT = 'SOFTWARE\Microsoft\Windows NT\CurrentVersion'; RegValNT = 'InstallDate'; RegKey95 = 'SOFTWARE\Microsoft\Windows\CurrentVersion'; RegVal95 = 'FirstInstallDateTime'; function RegReadDWORD(const Key, Name: string): DWORD; begin Result := 0; with TRegistry.Create do try RootKey := HKEY_LOCAL_MACHINE; if KeyExists(Key) and OpenKeyReadOnly(Key) and ValueExists(Name) and (GetDataType(Name) in [rdInteger, rdBinary, rdUnknown]) and (GetDataSize(Name) = SizeOf(Result)) then if GetDataType(Name) = rdInteger then Result := DWORD(ReadInteger(Name)) else ReadBinaryData(Name, Result, SizeOf(Result)); finally Free; end; end; var Value: DWORD; begin Value := RegReadDWORD(RegKeyNT, RegValNT); if Value <> 0 then Result := EncodeDate(1970, 1, 1) + (Value / SecsPerDay) else begin Value := RegReadDWORD(RegKey95, RegVal95); if Value <> 0 then Result := FileDateToDateTime(Value) else Result := 0.0; end; end; |
#3
|
|||
|
|||
читается не
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\InstallDate а HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\ Windows NT\CurrentVersion\InstallDate |
#4
|
||||
|
||||
Тогда следует ввести проверку на разрядность Windows
|