フリーソフト

« [BCB] 世界協定時刻(UTC)をローカルタイムに変換 | トップページ | [Delphi] 電源(バッテリ)の状態を取得する »

[BCB] OSの名前を取得する(簡易版)

ヘッダ

//---------------------------------------------------------------------------

#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Windows.hpp>

class TSysOSVersionInfo
{
private:
 AnsiString FProductID;
 AnsiString FProductName;
 DWORD FServicePackVersion;
 DWORD FVersionMajor;
 DWORD FVersionMinor;
 DWORD FVersionBuild;
 AnsiString FCSDVersion;

 bool FIsWinNT;
public:
 __fastcall TSysOSVersionInfo(void);
 __fastcall ~TSysOSVersionInfo(void);

 __property AnsiString ProductID={read=FProductID};
 __property AnsiString ProductName={read=FProductName};
 __property AnsiString ProductType={read=FProductType};
 __property DWORD ServicePackVersion={read=FServicePackVersion};
 __property DWORD VersionMajor={read=FVersionMajor};
 __property DWORD VersionMinor={read=FVersionMinor};
 __property DWORD VersionBuild={read=FVersionBuild};
 __property AnsiString CSDVersion={read=FCSDVersion};
};


#endif

ソース

//---------------------------------------------------------------------------


#pragma hdrstop

#include "Unit1.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#include <windows.h>
#include <Registry.hpp>

//---------------------------------------------------------------------------
__fastcall TSysOSVersionInfo::TSysOSVersionInfo(void)
{
 TSystemInfo SystemInfo;

 memset(&SystemInfo, 0x00, sizeof(SystemInfo));
 GetSystemInfo(&SystemInfo);

 FIsWinNT = (Win32Platform == VER_PLATFORM_WIN32_NT);

 //ProductID,ProductName
 TRegistry *Reg=new TRegistry(KEY_READ);
 try {
  bool Res;
  Reg->RootKey=HKEY_LOCAL_MACHINE;
  if (FIsWinNT) Res=Reg->OpenKeyReadOnly("Software\\Microsoft\\Windows NT\\CurrentVersion");
  else Res=Reg->OpenKeyReadOnly("Software\\Microsoft\\Windows\\CurrentVersion");

  if (Res) {
   FProductID=Reg->ReadString("ProductID");
   FProductName=Reg->ReadString("ProductName");
  }

  Reg->CloseKey();
 } __finally {
  delete Reg;
 }
 FVersionMajor=Win32MajorVersion;
 FVersionMinor=Win32MinorVersion;
 FVersionBuild=Win32BuildNumber;
 FCSDVersion=Win32CSDVersion;
}
//---------------------------------------------------------------------------
__fastcall TSysOSVersionInfo::~TSysOSVersionInfo(void)
{

}
//---------------------------------------------------------------------------

« [BCB] 世界協定時刻(UTC)をローカルタイムに変換 | トップページ | [Delphi] 電源(バッテリ)の状態を取得する »

C++Builder」カテゴリの記事

システム関連」カテゴリの記事

コメント

この記事へのコメントは終了しました。