C# 3.0 如何获取ram序列号?
我需要知道如何获得RAM物理内存序列号。我使用C和WMI获取硬件信息,但在另一台计算机上序列号返回null。我想知道我怎样才能得到它,并在任何计算机上工作,而不是WMI,如果没有其他方法,我可以用C++编写,并在这个函数与我的应用程序之间进行连接吗? 这是我的一些代码: WqlObjectQuery Memory3_objectQuery=新的WqlObjectQuerySelect*从Win32_PhysicalMemory; ManagementObjectSearcher Memory3\u Searcher=新建ManagementObjectSearcherMemory3\u objectQuery; foreach management object MO2内存3_search.Get {C# 3.0 如何获取ram序列号?,c#-3.0,C# 3.0,我需要知道如何获得RAM物理内存序列号。我使用C和WMI获取硬件信息,但在另一台计算机上序列号返回null。我想知道我怎样才能得到它,并在任何计算机上工作,而不是WMI,如果没有其他方法,我可以用C++编写,并在这个函数与我的应用程序之间进行连接吗? 这是我的一些代码: WqlObjectQuery Memory3_objectQuery=新的WqlObjectQuerySelect*从Win32_PhysicalMemory; ManagementObjectSearcher Memory3\
这在很大程度上取决于主板制造商。除非在某些服务器板上,否则您将无法获得此信息。要获取所有硬件信息,请访问以下链接,特别链接:
cmd.Parameters.Clear();
cmd.Parameters.AddWithValue("@Component_Type", "RAM");
try
{
Model = MO2["Model"].ToString();
if (Model != null)
{
cmd.Parameters.AddWithValue("@Model", Model);
}
else { }
}
catch (NullReferenceException) { }
try
{
Capacity = MO2["Capacity"].ToString();
if (Capacity != null)
{
cmd.Parameters.AddWithValue("@Capacity", Capacity);
}
else { }
}
catch (NullReferenceException)
{ }
try
{
Serial = MO2["SerialNumber"].ToString();
if (Serial != null)
{
cmd.Parameters.AddWithValue("@SerialNumber", Serial);
}
else { }
}
catch (NullReferenceException)
{
}
try
{
Manufacturer = MO2["Manufacturer"].ToString();
if (Manufacturer != null)
{
cmd.Parameters.AddWithValue("@Manufacturer", Manufacturer);
}
else { }
}
catch (NullReferenceException)
{
}
// Console.WriteLine("Serial Number Bank" + count + ": " + s);
try
{
s = MO2["MemoryType"].ToString();
if (s.Equals("21"))
{
s = "DDr2";
cmd.Parameters.AddWithValue("@Memory_Type", s);
}
else if (s.Equals("20"))
{
s = "DDr";
cmd.Parameters.AddWithValue("@Memory_Type", s);
}
else if (s.Equals("17"))
{
s = "SDRAM";
cmd.Parameters.AddWithValue("@Memory_Type", s);
}
}
catch (NullReferenceException) { }
cmd.Parameters.AddWithValue("@Computer_Name", myHost);
cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
//SEE http://licensetoolkit.com/blog/hardware-identification-using-ram/
//using System.Management;
public static void OutputRamInformation()
{
// Create our WMI searcher to do our query
ManagementObjectSearcher searcher = new
ManagementObjectSearcher( "select * from Win32_PhysicalMemory" );
// Now loop through all the item found with the query
int ram = 1;
foreach ( ManagementObject obj in searcher.Get() )
{
Console.WriteLine( String.Format( "RAM #{0}:" , ram ) );
// Now step through each of the properties and output their values
foreach ( PropertyData property in obj.Properties )
{
if ( property.Value != null )
{
Console.WriteLine( property.Name + " = " +
property.Value.ToString() );
}
}
Console.WriteLine( "---------------------------------" );
// Increment our ram chip count
ram++;
}
// Wait for a keypress before continuting
Console.WriteLine( "Press any key to continue..." );
Console.ReadKey();
}