C#Visual Studio

C#でWMIを使ってOSやメモリ情報の取得

スポンサーリンク

WMIを使う

Visual Studio2015、2109のC#でパソコンのOSやメモリーの情報を取得する方法を調べたのでメモしておきます。
OSやメモリーの情報を得るには、いくつかありますが「WMI」を使う方法でやってみました。

WMI

WMI(Windows Management Instrumentation)とは、コンピュータやOSの情報を取得したり設定することができるインターフェースです。

参照の追加

まず、C#でWMIを使うために、プロジェクトの参照設定「System.Management」の参照を追加します。

下記が参照の追加手順です。

1.メニューの「プロジェクト」ー「参照の追加」を選択
Visual Studio C# WMI 使い方 OS メモリ 情報 取得

2.表示した参照マネージャーの画面で、左側で「アセンブリ」の「フレームワーク」を選択。
右側の一覧で「System.Management」の項目にチェックして「OK」ボタンクリック。
Visual Studio C# WMI 使い方 OS メモリ 情報 取得

サンプル

Visual Studio2019のC#で、OSとメモリーの情報を取得するプログラムサンプルです。
他にもWMIを使って、いろいろな情報が取得できます。

private void button1_Click(object sender, EventArgs e)
{
    int nVal;
    System.Management.ManagementClass mc = new System.Management.ManagementClass("Win32_OperatingSystem");
    System.Management.ManagementObjectCollection moc = mc.GetInstances();

    foreach (System.Management.ManagementObject mo in moc)
    {
        // OSの情報
        // エディション
        System.Diagnostics.Debug.WriteLine("Caption=" + mo["Caption"].ToString());

        // バージョン
        System.Diagnostics.Debug.WriteLine("Version=" + mo["Version"].ToString());

        // ビルド番号
        System.Diagnostics.Debug.WriteLine("BuildNumber=" + mo["BuildNumber"].ToString());


        // メモリー情報
        // 合計物理メモリー
        nVal = Convert.ToInt32(mo["TotalVisibleMemorySize"]) / 1024;    // 単位 KB -> MB
        System.Diagnostics.Debug.WriteLine("合計物理メモリ(MB)=" + nVal.ToString());

        // 利用可能な物理メモリー
        nVal = Convert.ToInt32(mo["FreePhysicalMemory"]) / 1024;    // 単位 KB -> MB
        System.Diagnostics.Debug.WriteLine("利用可能な物理メモリ(MB)=" + nVal.ToString());

        // 合計仮想メモリー
        nVal = Convert.ToInt32(mo["TotalVirtualMemorySize"]) / 1024;    // 単位 KB -> MB
        System.Diagnostics.Debug.WriteLine("合計仮想メモリ(MB)=" + nVal.ToString());

        // 利用可能な仮想メモリー
        nVal = Convert.ToInt32(mo["FreeVirtualMemory"]) / 1024;    // 単位 KB -> MB
        System.Diagnostics.Debug.WriteLine("利用可能な仮想(MB)=" + nVal.ToString());
    }
}

実行した結果です。パソコンのOSとメモリーの情報が取得できました。
Visual Studio C# WMI OS メモリ 情報 取得

コメント