谁做过C#序列号?急。。 希望做过的帮帮忙,写清楚一些,本人初学者!我QQ454947356,多谢帮忙啊! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 有没有具体要求?没有要求的话,用GUID好了,这个最简单了 方法一、获取客户端硬盘号、CPU序列号、MAC地址,它们三个排列组合一下,然后把组合后字符串再加密。方法二、算号,可以利用windows计算器算。方法三、……附:/// <summary> /// 获得cpu序列号,硬盘序列号,MAC地址 /// </summary> /// <returns></returns> private string[] GetMoc() { string[] str = new string[3]; ManagementClass mcCpu = new ManagementClass("win32_Processor"); ManagementObjectCollection mocCpu = mcCpu.GetInstances(); foreach (ManagementObject m in mocCpu) { str[0] = m["ProcessorId"].ToString(); } ManagementClass mcHD = new ManagementClass("win32_logicaldisk"); ManagementObjectCollection mocHD = mcHD.GetInstances(); foreach (ManagementObject m in mocHD) { if (m["DeviceID"].ToString() == "C:") { str[1] = m["VolumeSerialNumber"].ToString(); break; } } ManagementClass mcMAC = new ManagementClass("Win32_NetworkAdapterConfiguration"); ManagementObjectCollection mocMAC = mcMAC.GetInstances(); foreach (ManagementObject m in mocMAC) { if ((bool)m["IPEnabled"]) { str[2] = m["MacAddress"].ToString(); break; } } return str; } cpu序列号,硬盘序列号,MAC地址组合成序列号 再加点自己的函数基本可用了 获取客户端硬盘号、CPU序列号、MAC地址,它们三个排列组合一下,用数据库表来存放该组合字符串用户使用软件的时候(即软件运行的时候),首先检查数据库中有没有该组合字符串,如果没有,说明用户是第一次使用该软件,将组合字符串及第一次使用的日期保存在数据库中去;如果有,则说明以前已经用过该软件了,比如是试用一个月,然后你就判断当前日期与第一次使用日期的差值是否到一个月,到了一个月就提示用户需要冲值,没到则直接进主界面继续使用该软件 通过rsa加密http://blog.csdn.net/llwinnner/archive/2009/03/21/4011936.aspx http://download.csdn.net/source/1815550包括硬盘号,MAC地址,CPU信息等Dim strDiskID As StringDim hdd As HardDiskInfo.HardDiskInfohdd = HardDiskInfo.AtapiDevice.GetHddInfo(0)strDiskID = hdd.SerialNumberReturn strDiskID 请教tabpage页面切换问题,谢谢大家。急!!! c# 界面 C#中把一个rectangle对象关联到窗口怎么关联 ocx控件注册问题 Base.OnPaint(e) 请教一个问题 索引的问题 关于iewebcontrol treeview的使用 广州找工作并不是很容易啊,时代变了要完了 我想学C#,问几个问题!! Form1调用一个新窗体frm,谢谢大家给予方法! myFilterGraph as IBasicAudio 编译错误
没有要求的话,用GUID好了,这个最简单了
方法二、算号,可以利用windows计算器算。
方法三、……附:
/// <summary>
/// 获得cpu序列号,硬盘序列号,MAC地址
/// </summary>
/// <returns></returns>
private string[] GetMoc()
{
string[] str = new string[3];
ManagementClass mcCpu = new ManagementClass("win32_Processor");
ManagementObjectCollection mocCpu = mcCpu.GetInstances();
foreach (ManagementObject m in mocCpu)
{
str[0] = m["ProcessorId"].ToString();
} ManagementClass mcHD = new ManagementClass("win32_logicaldisk");
ManagementObjectCollection mocHD = mcHD.GetInstances();
foreach (ManagementObject m in mocHD)
{
if (m["DeviceID"].ToString() == "C:")
{
str[1] = m["VolumeSerialNumber"].ToString();
break;
}
} ManagementClass mcMAC = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection mocMAC = mcMAC.GetInstances();
foreach (ManagementObject m in mocMAC)
{
if ((bool)m["IPEnabled"])
{
str[2] = m["MacAddress"].ToString();
break;
}
}
return str;
}
组合成序列号 再加点自己的函数基本可用了
用户使用软件的时候(即软件运行的时候),首先检查数据库中有没有该组合字符串,如果没有,说明用户是第一次使用该软件,将组合字符串及第一次使用的日期保存在数据库中去;如果有,则说明以前已经用过该软件了,比如是试用一个月,然后你就判断当前日期与第一次使用日期的差值是否到一个月,到了一个月就提示用户需要冲值,没到则直接进主界面继续使用该软件
http://blog.csdn.net/llwinnner/archive/2009/03/21/4011936.aspx
包括硬盘号,MAC地址,CPU信息等
Dim strDiskID As String
Dim hdd As HardDiskInfo.HardDiskInfo
hdd = HardDiskInfo.AtapiDevice.GetHddInfo(0)
strDiskID = hdd.SerialNumber
Return strDiskID