ローカルコンピュータとリモートコンピュータの両方からRAM情報を取得する必要がありますが、System.ManagementのWMIを認識していますが、WMIの問題はWin32_PhysicalMemoryクラスに値があります「メモリタイプ」と呼ばれる必要がありますが、常に0または「不明」が返されます。
Win32_PhysicalMemory class (http://msdn.microsoft.com/en-us/library/aa394347%28v=vs.85%29.aspx)WMIハードウェア、RAM情報を取得
私は、管理者アカウントで3台の異なるXP Professionalコンピュータ上でC#とVBScriptの両方からWin32_PhysicalMemoryを使用しようとしましたし、同じ0または「不明」MemoryTypeの値が返されてしまいました。私が使ったコードはシンプルで短く、ネットの周りのいくつかのソースからコピーして貼り付けたので、大きな問題はないと確信しています。
私は間違ってWMIを使用していますか?使用できるWindows APIの代替方法はありますか?
リモートレポートは必須ではありません。
具体的には、使用しているRAMの種類、速度、使用するRAMの種類、DDR2、DDR3などの数をカウントする必要があります。Win32_PhysicalMemoryクラスは、 RAMの。
ConnectionOptions connection = new ConnectionOptions();
connection.Impersonation = ImpersonationLevel.Impersonate;
ManagementScope scope = new ManagementScope("\\\\.\\root\\CIMV2", connection);
scope.Connect();
ObjectQuery query = new ObjectQuery("SELECT * FROM Win32_PhysicalMemory");
ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query);
foreach (ManagementObject queryObj in searcher.Get())
{
System.Diagnostics.Debug.WriteLine("-----------------------------------");
System.Diagnostics.Debug.WriteLine("Capacity: {0}", queryObj["Capacity"]);
System.Diagnostics.Debug.WriteLine("MemoryType: {0}", queryObj["MemoryType"]);
}
いいえ、まだ正確です。生成されるすべてのメモリがEEPROMにエンコードされた必要な情報を持っているわけではありません。それがなければ読むことはできません。そのような単純な。 –
しかし、私はCPU-Zと呼ばれるソフトウェアを使用すると、それは私にすべての情報を与えるので、それはどこかに格納されていることを知っています。 – ambiguousPanda
@曖昧さ:それは私があまりにも考えていたものです。 Codyにはポイントがありますが、CPU-Zはシリアル番号に基づいて見つけた情報を格納することができます。 –