[C++Builder]SysUtils.GetEnvironmentVariableで環境変数の値を取得する。

SysUtils.GetEnvironmentVariableを呼び出すと、環境変数の値を取得することができます。

引数と返値にUnicodeStringが使えるので、Win32APIのGetEnvironmentVariable関数よりも使いやすいです。

#include <tchar.h>
#include <iostream>
#include <locale>
#include <boost/array.hpp>
#include <boost/foreach.hpp>

int _tmain(int argc, _TCHAR* argv[])
{
  std::locale::global(std::locale("japanese"));
  //環境変数
  boost::array<UnicodeString, 15> names = {
    "ALLUSERSPROFILE",  //一般的なユーザー プロファイル
    "APPDATA",  //アプリケーションデータフォルダのパス
    "CLIENTNAME", //クライアント マシンの名前
    "COMMONPROGRAMFILES", //共通のプログラムファイルフォルダのパス
    "COMSPEC",  //cmd.exe プログラムのパス
    "HOMEDRIVE",  //現在のホーム ドライブ指定(たとえば 'C:' など)
    "HOMEPATH", //現在のドキュメント格納場所のパス
    "NUMBER_OF_PROCESSORS", //現在のマシンに搭載されているプロセッサの数
    "OS", //OS
    "PROCESSOR_ARCHITECTURE", //CPU アーキテクチャのタイプ。たとえば、Intel Pentium プロセッサの場合は X86。
    "PROCESSOR_LEVEL", //CPU アーキテクチャの詳細説明
    "TEMP", //一時ファイル フォルダのパス
    "USERNAME", //現在のユーザーの名前
    "USERPROFILE", //現在のユーザーの情報が格納されているフォルダのパス
    "WINDIR", //Windows フォルダのパス
  };
  BOOST_FOREACH(UnicodeString name, names)
  {
    UnicodeString value = GetEnvironmentVariable(name);
    std::wcout << name.c_str() << "=" << value.c_str() << std::endl;
  }
  return 0;
}

実行結果

ALLUSERSPROFILE=C:\Documents and Settings\All Users
APPDATA=C:\Documents and Settings\yamamoto\Application Data
CLIENTNAME=Console
COMMONPROGRAMFILES=C:\Program Files\Common Files
COMSPEC=C:\WINDOWS\system32\cmd.exe
HOMEDRIVE=C:
HOMEPATH=\Documents and Settings\yamamoto
NUMBER_OF_PROCESSORS=1
OS=Windows_NT
PROCESSOR_ARCHITECTURE=x86
PROCESSOR_LEVEL=15
TEMP=C:\DOCUME~1\yamamoto\LOCALS~1\Temp
USERNAME=yamamoto
USERPROFILE=C:\Documents and Settings\yamamoto
WINDIR=C:\WINDOWS

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください