0

私はコーディングが初めてで、コンピューター情報を複数行のテキストボックスに表示する簡単なアプリを作成しようとしています。

そのため、レジストリでOS名、バージョンなどを検索し、system.environmentを使用して現在ログインしているユーザー、アーキテクチャなどを取得することで基本を取得し、ManagementObjectSearcherを使用してCPUの名前と合計RAMを取得しました.

私の問題は、4 つのメモリ スティックがインストールされていることです。そのため、アプリは技術的には各メモリ スティックの合計サイズを返すことで求めているものを提供しますが、実際には、4 GB の 4 つのインスタンスではなく、16 GB の 1 つのインスタンスが必要です。これは私が使用したものです:

ManagementObjectSearcher search = new ManagementObjectSearcher("Select * From Win32_PhysicalMemory");

foreach (ManagementObject ram in search.Get())
            {
                txtSystemInfo.Text += "\r\nRAM: " + Convert.ToDouble(ram.GetPropertyValue("Capacity")) / 1073741824 + "GB";
        }

出力は基本的に次のようになります。

Username: xxxx
OS: Windows x.x (arch)
Version: x.x Build xxxx
CPU: Intel blah blah
RAM: 4GB
RAM: 4GB
RAM: 4GB
RAM: 4GB

明らかに、私は深いところに飛び込んでしまったので、おそらくこれをクリックすることができないので、どんな助けも大歓迎です.

4

1 に答える 1

0

単純にループ内で合計をインクリメントし、フォーマットして表示します。

UInt64 total = 0;
foreach (ManagementObject ram in search.Get())
{
    total += (UInt64)ram.GetPropertyValue("Capacity");
}

txtSystemInfo.Text += "\r\nRAM: " + total / 1073741824 + "GB";
于 2015-06-14T16:55:42.050 に答える