如何获取CPU序列号、硬盘序列号, BS模式的!! 要那种网站在服务器上发布以后 ,客服端运行时获取的是客服端的序列号 而不是服务器端的序列号。
解决方案 »
- asp.net3.5 创建网站后,IE有打不开的提示?
- aspx中自动生成的form,怎么去掉form的name属性?
- 怎样根据asp。net的数据集导出excel表格?
- 水晶报表在每次调试的时候,打开它用crystalreportview看时候都会跳出"数据库登录窗口",有没有办法不让它显示,直接打开。
- 如何用CSS去掉整个网站的超链接的下划线?
- 关于DropDownList控件的问题,急急急!!
- 关于 ASP.NET 2.0 的主题功能问题!
- 求教:如何根据用户权限分别进入不同的目录?
- 怎么样通过前台将数据插入到数据库中
- ASP.net的DataGrid问题
- 跪求,急~ 生成html页面列表的问题
- 怎样在网上发布ASP.NET网站啊?
具体:
获取硬盘信息:Win32_DiskDrive,参见
http://msdn.microsoft.com/zh-cn/library/aa394132.aspx;
获取CPU信息:Win32_Processor,参见
http://msdn.microsoft.com/zh-cn/library/aa394373.aspx
/// HardDiskVal 的摘要说明。
/// 读取指定盘符的硬盘序列号
/// 功能:读取指定盘符的硬盘序列号
/// </summary>
public class HardDiskVal
{
[DllImport("kernel32.dll")]
private static extern int GetVolumeInformation( string lpRootPathName, string lpVolumeNameBuffer, int nVolumeNameSize, ref int lpVolumeSerialNumber, int lpMaximumComponentLength, int lpFileSystemFlags, string lpFileSystemNameBuffer, int nFileSystemNameSize ); /// <summary> /// 获得盘符为drvID的硬盘序列号,缺省为C /// </summary> /// <param name="drvID"></param> /// <returns></returns> public string HDVal(string drvID)
{ const int MAX_FILENAME_LEN = 256; int retVal = 0; int a = 0; int b = 0; string str1 = null; string str2 = null; int i = GetVolumeInformation( drvID + @":\", str1, MAX_FILENAME_LEN, ref retVal, a, b, str2, MAX_FILENAME_LEN ); return retVal.ToString(); } public string HDVal()
{ const int MAX_FILENAME_LEN = 256; int retVal = 0; int a = 0; int b = 0; string str1 = null; string str2 = null; int i = GetVolumeInformation( "c:\\", str1, MAX_FILENAME_LEN, ref retVal, a, b, str2, MAX_FILENAME_LEN ); return retVal.ToString(); } }
/// <summary>
/// 读取设备
/// </summary>
public class run
{
private ManagementClass mc;
private ManagementObjectCollection moc;
private ManagementObject disk;
public run()
{ }
/// <summary>
/// 取得设备网卡的MAC地址
/// </summary>
public string GetNetCardMacAddress()
{
mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
moc = mc.GetInstances();
string str = "";
foreach (ManagementObject mo in moc)
{
if ((bool)mo["IPEnabled"] == true)
str = mo["MacAddress"].ToString(); }
return str;
}
/// <summary>
/// 取得设备硬盘的卷标号
/// </summary>
/// <returns></returns>
public string GetDiskVolumeSerialNumber()
{
mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
disk = new ManagementObject("win32_logicaldisk.deviceid=\"c:\"");
disk.Get();
return disk.GetPropertyValue("VolumeSerialNumber").ToString();
}
}
干脆我给一段现成的吧:
大家可以结合我10楼提供的资料自由发挥封装一下
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>javascript获得客户端硬件信息</title>
<script id="getHwInfos" type="text/JavaScript">
function getCpuInfor() {//CPU 信息
var locator = new ActiveXObject("WbemScripting.SWbemLocator");
var service = locator.ConnectServer(".");
var properties = service.ExecQuery("SELECT * FROM Win32_Processor");
var e = new Enumerator(properties);
document.write("<table border=1>");
for (;!e.atEnd();e.moveNext ())
{
var p = e.item ();
document.write("<tr>");
document.write("<td>Caption:" + p.Caption + "</td>");
document.write("<td>DeviceID:" + p.DeviceID + "</td>");
document.write("<td>Name:" + p.Name + "</td>");
document.write("<td>ProcessorID:" + p.ProcessorID + "</td>");
document.write("</tr>");
}
document.write("</table>");
}
function getHddInfo() {//硬盘序列号 信息
var locator = new ActiveXObject ("WbemScripting.SWbemLocator");
var service = locator.ConnectServer(".");
var properties = service.ExecQuery("SELECT * FROM Win32_DiskDrive");
var e = new Enumerator (properties);
document.write("<table border=1>");
for (;!e.atEnd();e.moveNext ())
{
var p = e.item ();
var _sn = p.SerialNumber;
if(!_sn)_sn = "无法获取SerialNumber";
document.write("<tr>");
document.write("<td>SerialNumber:" + _sn + ",Signature:" + p.Signature + "</td>");
document.write("</tr>");
}
document.write("</table>");
} </script>
</head>
<body>
<input id="Button1" type="button" value="Button"
name="GetCpuInfo" onclick="return getCpuInfor()">
<input id="btnGetHddInfo" type="button" value="GetHddInfo" onclick="return getHddInfo()" />
</body>
</html>
获取软驱:Win32_FloppyDrive
获取CD:Win32_CDROMDrive
获取主板:Win32_BaseBoard
获取键盘:Win32_Keyboard
还有很多
具体参见:
http://msdn.microsoft.com/zh-cn/library/aa389273.aspx
{
//得到cpu信息
string _cpuInfo="";//cpu信息
ManagementClass cimobject = new ManagementClass("Win32_Processor");
ManagementObjectCollection moc = cimobject.GetInstances();
foreach(ManagementObject mo in moc)
{
_cpuInfo = mo.Properties["ProcessorId"].Value.ToString();
}
cpuInfo=_cpuInfo;
}
//获取硬盘ID
string _HDInfo="";
ManagementClass cimobject1 = new ManagementClass("Win32_DiskDrive");
ManagementObjectCollection moc1 = cimobject1.GetInstances();
foreach(ManagementObject mo in moc1)
{
_HDInfo = (string)mo.Properties["Model"].Value;}
HDInfo=_HDInfo;
}public static void GetMacAddress(out string MacAddress)
{
//获取网卡硬件地址
string _MacAddress="";
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection moc2 = mc.GetInstances();
foreach(ManagementObject mo in moc2)
{
if((bool)mo["IPEnabled"] == true)
MacAddress=mo["MacAddress"].ToString();
mo.Dispose();
}
MacAddress=_MacAddress;
}
var fso = CreateObject( "Scripting.FileSystemObject ")
var drs = fso.Drives;
for(var i=0;i <drs.length;i++)
{
d.DriveLetter ;
d.DriveType ;
d.VolumeName;
}