0

この関数で新しいクラスを作成しました:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
using System.Management;

namespace ScreenVideoRecorder
{
    class GetMemory
    {
        private static void DisplayTotalRam()
        {
            string Query = "SELECT MaxCapacity FROM Win32_PhysicalMemoryArray";
            ManagementObjectSearcher searcher = new ManagementObjectSearcher(Query);
            foreach (ManagementObject WniPART in searcher.Get())
            {
                UInt32 SizeinKB = Convert.ToUInt32(WniPART.Properties["MaxCapacity"].Value);
                UInt32 SizeinMB = SizeinKB / 1024;
                UInt32 SizeinGB = SizeinMB / 1024;
                //Console.WriteLine("Size in KB: {0}, Size in MB: {1}, Size in GB: {2}", SizeinKB, SizeinMB, SizeinGB);
            }
        }
    }
}

Form1 で SizeinKB MB と GB をラベルに表示したい。

4

2 に答える 2

3

編集

KB から MB / GB への変換は標準であるため、この関数から移動できます。数値を区別するための他の情報を表示していないため、UInt32 のリストを返すだけです。

private static void DisplayTotalRam()
{
    string Query = "SELECT MaxCapacity FROM Win32_PhysicalMemoryArray";

    List<Uint32> sizes = new List<UInt32>();

    ManagementObjectSearcher searcher = new ManagementObjectSearcher(Query);
    foreach (ManagementObject WniPART in searcher.Get())
    {
        UInt32 SizeinKB = Convert.ToUInt32(WniPART.Properties["MaxCapacity"].Value);
        sizes.Add(SizeinKB);
    }
    return sizes;
}

次に、次の形式で計算を行います。

List<UInt32> sizes = GetMeMory.DisplayTotalRam();
foreach(UInt32 sizeInKB in sizes)
{
   // show sizeInKB on label

   UInt32 sizeInMB = sizeInKB / 1024;
   // show sizeInMB on label

   // ..etc.
}

これを行うにはいくつかの方法があります。2 つの簡単な方法は次のとおりです。

  1. これらの値を含む構造体またはクラスのインスタンスを返します (クリーン、クラス、構造体を定義する必要があります)
  2. Int32s(単純でクリーンではない)の配列を返します
于 2013-06-10T21:51:04.967 に答える
0

メソッドに文字列パラメーターを追加できます。

DisplayTotalRam(ref String one, ref String two)

そしてそれらをメソッドで使用します。したがって、テキストを設定したいラベルが 2 つある場合は、次のように記述します。

DisplayTotalRam(ref label1.Text, ref label2.Text);
于 2013-06-10T21:53:00.373 に答える