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
Antwort Antwort
Benutzerbild von Mazel
Mazel

Registriert seit: 11. Nov 2005
Ort: Leipzig
831 Beiträge
 
#1

Registry-Schlüssel für Installationsdatum unter Vista

  Alt 27. Mai 2007, 22:46
Hallo,

ich suche den Registry-Schüssel für das Datum der Windowsinstallation unter Vista.
WinNT < 6.0:
Delphi-Quellcode:
// Schlüssel
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\
  InstallDate
Win9x:
Delphi-Quellcode:
// Schlüssel
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\
  FirstInstallDateTime
Wie lautet er aber unter Vista? Um das Datum zu ermitteln habe ich ein Code gefunden, den etwas bearbeitet und es scheint nur "nicht" auf Vista zu funktionieren, deshalb nehme ich an, dass das entweder nicht mehr so möglich oder ein anderer Schlüssel ist. Ein Freund hat es geteste und es kam als Ergebnis 1.1.1970.

Gruß
Mazel
Marcel Jänicke
www.mj-software.net
  Mit Zitat antworten Zitat
Benutzerbild von MagicAndre1981
MagicAndre1981

Registriert seit: 4. Jun 2004
Ort: Nordhausen
2.214 Beiträge
 
Delphi 7 Enterprise
 
#2

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

  Alt 28. Mai 2007, 09:42
Unter Vista heißt der auch InstallDate und ist eine Reg_DWORD
André
"A programmer is just a tool which converts caffeine into code", daran wirds wohl liegen, dass ich Abends nie pennen kann

Zitat von Luckie:
Nicht nur dass ihr offtopic geworden seid, jetzt werdet ihr selber im Offtopic noch offtopic
  Mit Zitat antworten Zitat
Benutzerbild von Mazel
Mazel

Registriert seit: 11. Nov 2005
Ort: Leipzig
831 Beiträge
 
#3

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

  Alt 28. Mai 2007, 10:58
Mhm, wieso funktioniert das dann aber nicht auf seinem Rechner? Wenn es der selbe Schlüssel ist, sollte das doch gehen? Kann es sein, dass der Wert nicht stimmt?
Dann werde ich ihn mal nach dem DWORD-Wert fragen und dein bei mir einsetzen.
Marcel Jänicke
www.mj-software.net
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#4

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

  Alt 28. Mai 2007, 11:02
Greifst du auch nur lesend auf den Registry-Key zu? Ansonsten koenntest du wohl UAC-verbundene Schwierigkeiten kriegen

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von Mazel
Mazel

Registriert seit: 11. Nov 2005
Ort: Leipzig
831 Beiträge
 
#5

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

  Alt 28. Mai 2007, 11:04
Ja, nur lesend:
Delphi-Quellcode:
CURRENT_VERSION_NT = 'SOFTWARE\Microsoft\Windows NT\CurrentVersion\';
CURRENT_VERSION_32 = 'SOFTWARE\Microsoft\Windows\CurrentVersion\';
...
RootKey := HKEY_LOCAL_MACHINE;
if WinNT then Reg.OpenKeyReadOnly(CURRENT_VERSION_NT)
else Reg.OpenKeyReadOnly(CURRENT_VERSION_32);
...
Marcel Jänicke
www.mj-software.net
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#6

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

  Alt 28. Mai 2007, 12:39
Hast du auch schon mal mit Regedit kontroliert was da drin steht?
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
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, 12: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
Benutzerbild von Mazel
Mazel

Registriert seit: 11. Nov 2005
Ort: Leipzig
831 Beiträge
 
#8

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

  Alt 28. Mai 2007, 13:45
Danke, der Code scheint der zu sein den ich gefunden habe, hier mal meine abgeänderte Variante die aber wie gesagt unter Windows XP funktioniert:
Delphi-Quellcode:
Reg := TRegistry.Create(KEY_READ);
 with Reg do
  try
   RootKey := HKEY_LOCAL_MACHINE;
   if WinNT then Reg.OpenKeyReadOnly(CURRENT_VERSION_NT)
   else Reg.OpenKeyReadOnly(CURRENT_VERSION_32);
   if not WinNT then
    begin
     if GetDataType('FirstInstallDateTime') = rdInteger then Buf := DWORD(ReadInteger('FirstInstallDateTime'))
     else ReadBinaryData('FirstInstallDateTime', Buf, SizeOf(Buf));
     VersionInfo.InstallDate := FormatDateTime('dd.mm.yyyy hh:nn:ss "Uhr"', FileDateToDateTime(Buf));
    end
   else
    begin
     if GetDataType('InstallDate') = rdInteger then Buf := DWORD(ReadInteger('InstallDate'))
     else ReadBinaryData('InstallDate', Buf, SizeOf(Buf));
     VersionInfo.InstallDate := FormatDateTime('dd.mm.yyyy hh:nn:ss "Uhr"', EncodeDate(1970, 1, 1) + (Buf / SecsPerDay));
    end;
  finally
   Reg.Free;
  end;
@Bernhard Geyer:
Ja also unter XP gibts InstallDate aber da ich kein Vista habe, bin ich auch andere mit Vista angewiesen.
Marcel Jänicke
www.mj-software.net
  Mit Zitat antworten Zitat
Antwort Antwort


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 09:23 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz