Saya perlu mengambil info RAM dari komputer lokal dan jarak jauh, saya mengetahui WMI di System.Management dan saya menggunakannya, tetapi masalah saya dengan WMI adalah kelas Win32_PhysicalMemory memiliki nilai yang saya perlukan disebut "MemoryType ", tetapi selalu mengembalikan 0 atau "Tidak Diketahui".
Kelas Win32_PhysicalMemory (http://msdn.microsoft.com/en-us/library/aa394347%28v=vs.85%29. aspx)
Saya telah mencoba menggunakan Win32_PhysicalMemory dari C# dan VBScript pada 3 komputer XP Professional yang berbeda dengan akun admin dan mendapatkan nilai MemoryType 0 atau "Tidak Dikenal" yang sama. Kode yang saya gunakan sederhana dan pendek, salin dan tempel dari sejumlah sumber di internet jadi saya yakin tidak ada masalah besar dengannya.
Apakah saya salah menggunakan WMI atau adakah alternatif Windows API yang bisa saya gunakan?
Laporan jarak jauh tidak penting.
Secara khusus saya perlu menghitung jumlah batang RAM yang dimilikinya, atau dapat dimiliki, kecepatannya, dan jenis RAM yang digunakannya, DDR2, DDR3, dll., kelas Win32_PhysicalMemory memberi saya semua ini kecuali jenis 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"]);
}