我可以使用C ++获取Windows的原始安装日期吗?

时间:2018-01-01 14:00:52

标签: windows winapi

如何使用C ++获取Windows的原始安装日期?我查了msdn但是找不到任何相关内容。

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;

    }

3 个答案:

答案 0 :(得分:6)

您可以阅读HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\InstallDate注册表项并获取该值。阅读是通过使用WinAPI的registry functions之一RegOpenKeyExRegQueryValueEx来完成的。该值代表:

  

自1970年1月1日00:00:00起的秒数

答案 1 :(得分:3)

正如罗恩所描述的那样,你可以从注册表中阅读InstallDate,尽管它没有正式记录。如果要使用官方API,请改用WMI。 Win32_OperatingSystem类具有InstallDate属性。

答案 2 :(得分:0)

感谢您的评论。我想知道你是否可以告诉我们是否有任何基本的winapi在c ++中使用?