AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Delphi-PRAXiS - Lounge Betriebssysteme Registry-Schlüssel für Installationsdatum unter Vista
Thema durchsuchen
Ansicht
Themen-Optionen

Registry-Schlüssel für Installationsdatum unter Vista

Ein Thema von Mazel · begonnen am 27. Mai 2007 · letzter Beitrag vom 28. Mai 2007
 
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#7

Re: Registry-Schlüssel für Installationsdatum unter Vista

  Alt 28. Mai 2007, 11:46
Hallo Marcel,

probiere mal folgendes : (wie immer alles ohne Gewähr)
Delphi-Quellcode:
  If isWinNT Then
    regKey:= 'SOFTWARE\MICROSOFT\WINDOWS NT\CURRENTVERSION';
  If isWIN9x Then
    regKey:= 'SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION';
  Reg:= TRegistry.Create;
  Reg.RootKey:= HKEY_LOCAL_MACHINE;
  If Reg.OpenKeyReadOnly( regKey ) Then
  Begin
    If isWINNT Then regBuf:= 'InstallDate'
    Else
    If isWIN9x Then regBuf:= 'FirstInstallDateTime'
    Else regKey:= '';


    If (regKey <> '') Then
    Begin
      If reg.ValueExists(regBuf) Then
      Begin
        dType:= reg.GetDataType(regBuf);

        Case dType Of
          rdInteger : Begin
                        If isWINNT Then Result.InstallDate:= ctime2datetime( reg.ReadInteger(regBuf) );
                        If isWin9x Then Result.InstallDate:= FormatDateTime('dd.mm.yyyy', FileDateToDateTime(reg.ReadInteger('FirstInstallDateTime')));
                      End;
          rdBinary : Begin
                        reg.ReadBinaryData( regBuf, wBuf, SizeOf(wBuf) );
                        If isWINNT Then Result.InstallDate:= ctime2datetime( wBuf );
                        If isWin9x Then Result.InstallDate:= FormatDateTime('dd.mm.yyyy', FileDateToDateTime(wBuf));
                      End;
        End;
      End;
    End;
  End;
Mit dem isWinNT und dem isWin9x, prüfe ich ab um welches Betriebsystem es sich handelt. Dieses musst Du natürlich durch deine Abprüfung ersetzen.

Dazu brauchst Du natürlich noch diese Funktion :
Delphi-Quellcode:
function ctime2datetime(givenTime: Double): string;
var DateTime: TDateTime;
  TimeZoneInformation: TTimeZoneInformation;
begin
  GetTimeZoneInformation(TimeZoneInformation);
  DateTime:= EncodeDate( 1970, 1, 1 )+(givenTime/86400)-((TimeZoneInformation.Bias+TimeZoneInformation.daylightBias)/1440);
  Result:= FormatDateTime('dd.mm.yyyy', DateTime);
end;
Diese Variante funktioniert unter W2k, W2k3 und Vista.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:15 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