winapi - Kan jeg få den oprindelige installationsdato for Windows ved hjælp af C ++?

Indlæg af Hanne Mølgaard Plasc

Problem



Hvordan kan jeg få den oprindelige installationsdato for Windows ved hjælp af C ++? Jeg har tjekket msdn, men jeg kunne ikke finde noget relateret.


HKEY hKey;
DWORD buffer;
DWORD  result;
unsigned long type=REG\_DWORD;

    result = RegOpenKeyEx(HKEY\_LOCAL\_MACHINE,L"Software\Microsoft\Windows NT\CurrentVersion",0,KEY\_READ,&hKey);
    if(result == ERROR\_SUCCESS)
    {
           DWORD BufferSize = sizeof(DWORD);
    DWORD dwRet;
    DWORD cbData = 10;
    DWORD lpType;
    wchar\_t cbVal[10];
    cout<<"Value before calling RegQueryValueEx is " << cbVal << endl;


   dwRet=    RegQueryValueEx(hKey,L"InstallDate",NULL, &lpType,
      reinterpret\_cast<LPBYTE>(cbVal),&cbData);

           if( dwRet == ERROR\_SUCCESS )
      cout<<"Value is " << cbVal << endl;
    else cout<<"RegQueryValueEx failed " << dwRet << endl;

    }

Bedste reference


Du kan læse HKLMSOFTWAREMicrosoftWindows NTCurrentVersionInstallDate registreringsnøglen og få værdien. Aflæsningen sker ved at bruge en af ​​WinAPIs registreringsfunktioner som RegOpenKeyEx og RegQueryValueEx. Værdien repræsenterer: [6] [7] [8]



  Antal sekunder siden 01/01/1970 kl. 00:00:00


Andre referencer 1


Som Ron beskrev, kan du læse InstallDate fra registreringsdatabasen, selv om det ikke er officielt dokumenteret. Hvis du vil bruge en officiel API, skal du bruge WMI i stedet. Klassen Win32\_OperatingSystem har en InstallDate ejendom. [9]

Andre referencer 2


Tak for dine kommentarer. Jeg undrer mig over, om du kan lade os vide, om der er nogen grundlæggende winapi at bruge i c ++?