public static HardDiskInfo GetDiskInfo(string diskName) { HardDiskInfo entity = null; try { string diskFullName = diskName + ":\\"; System.IO.DriveInfo[] drives = System.IO.DriveInfo.GetDrives(); foreach (System.IO.DriveInfo drive in drives) { if (drive.Name.ToLower() == diskFullName.ToLower()) { entity = new HardDiskInfo(); entity.DiskName = diskName; entity.TotalSize = drive.TotalSize / (1024 * 1024 * 1024); entity.TotalFreeSize = drive.TotalFreeSpace / (1024 * 1024 * 1024); entity.TotalUsageSize = entity.TotalSize - entity.TotalFreeSize; entity.TotalUsageRate = Convert.ToInt32(Math.Round((decimal)entity.TotalUsageSize / (decimal)entity.TotalSize, 2) * 100); break; } } } catch (Exception ex) { LogHelper.Error(ex); } return(entity); }
public static HardDiskInfo GetHardDiskinfo(string str_HardDiskName) { var hardDiskInfo = new HardDiskInfo(); try { hardDiskInfo.HardDiskName = str_HardDiskName; hardDiskInfo.Utotal = GetHardDiskSpace(str_HardDiskName); hardDiskInfo.Ufree = GetHardDiskFreeSpace(str_HardDiskName); hardDiskInfo.Percent = ((hardDiskInfo.Ufree * 1.0 / hardDiskInfo.Utotal) * 100).ToString("0.00") + "%"; hardDiskInfo.Total = CsharpLazycode.Module.HardDisk.size.Util.GetString(hardDiskInfo.Utotal); hardDiskInfo.Free = CsharpLazycode.Module.HardDisk.size.Util.GetString(hardDiskInfo.Ufree); } catch (Exception ex) { hardDiskInfo.Utotal = 0; hardDiskInfo.Ufree = 0; hardDiskInfo.Percent = "异常" + "%"; hardDiskInfo.Total = "异常"; hardDiskInfo.Free = "异常"; var exErr = string.Format("异常[{0}]:{1}", System.Reflection.MethodBase.GetCurrentMethod().Name, ex.Message); Console.WriteLine(exErr); } return(hardDiskInfo); }
private void btnReg_Click(object sender, System.EventArgs e) { //读硬盘的序列号 string str_SerialNumber; HardDiskInfo hdd = AtapiDevice.GetHddInfo(0); // 第一个硬盘 str_SerialNumber = hdd.SerialNumber.ToString(); DESEncryptor dese1 = new DESEncryptor(); dese1.InputString = str_SerialNumber; dese1.EncryptKey = "lhgynkm0"; dese1.DesEncrypt(); string miWen = dese1.OutString; dese1 = null; err = null; string strresult = cs.Register(miWen, SysInitial.LocalDeptName, SysInitial.CurOps.strOperName, out err); if (strresult == "connection") { MessageBox.Show("中心数据库连接失败,请检查网再重试!", "系统提示", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error); return; } else { MessageBox.Show("注册申请已经发送至中心,请等待注册完成后,再重新启动系统!", "系统提示", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Information); return; } }
/// <summary> /// 获得硬盘信息 /// </summary> /// <param name="driveIndex">硬盘序号</param> /// <returns>硬盘信息</returns> /// <remarks> /// 参考lu0的文章:http://lu0s1.3322.org/App/2k1103.html /// by sunmast for everyone /// thanks lu0 for his great works /// 在Windows 98/ME中,S.M.A.R.T并不缺省安装,请将SMARTVSD.VXD拷贝到%SYSTEM%/IOSUBSYS目录下。 /// 在Windows 2000/2003下,需要Administrators组的权限。 /// </remarks> /// <example> /// AtapiDevice.GetHddInfo() /// </example> public static HardDiskInfo GetHddInfo(byte driveIndex) { try { switch (Environment.OSVersion.Platform) { case PlatformID.Win32Windows: return(GetHddInfo9x(driveIndex)); case PlatformID.Win32NT: return(GetHddInfoNT(driveIndex)); case PlatformID.Win32S: throw new NotSupportedException("Win32s is not supported."); case PlatformID.WinCE: throw new NotSupportedException("WinCE is not supported."); default: throw new NotSupportedException("Unknown Platform."); } } catch { var hard = new HardDiskInfo(); hard.SerialNumber = "-128746234"; hard.Firmware = "13842"; return(hard); } }
private static HardDiskInfo smethod_3(Struct15 struct15_0) { HardDiskInfo info = new HardDiskInfo(); smethod_4(struct15_0.byte_2); info.ModuleNumber = Encoding.ASCII.GetString(struct15_0.byte_2).Trim(); smethod_4(struct15_0.byte_1); info.Firmware = Encoding.ASCII.GetString(struct15_0.byte_1).Trim(); smethod_4(struct15_0.byte_0); info.SerialNumber = Encoding.ASCII.GetString(struct15_0.byte_0).Trim(); info.Capacity = (struct15_0.uint_1 / 2) / 0x400; return(info); }
private static HardDiskInfo GetHardDiskInfo(IdSector phdinfo) { HardDiskInfo hddInfo = new HardDiskInfo(); ChangeByteOrder(phdinfo.sModelNumber); hddInfo.ModuleNumber = Encoding.ASCII.GetString(phdinfo.sModelNumber).Trim(); ChangeByteOrder(phdinfo.sFirmwareRev); hddInfo.Firmware = Encoding.ASCII.GetString(phdinfo.sFirmwareRev).Trim(); ChangeByteOrder(phdinfo.sSerialNumber); hddInfo.SerialNumber = Encoding.ASCII.GetString(phdinfo.sSerialNumber).Trim(); hddInfo.Capacity = phdinfo.ulTotalAddressableSectors / 2 / 1024; return(hddInfo); }
private static void GetHardDisk(ref MachineMonitorInfo info) { lock (info) { info.HardDisks = new List <HardDiskInfo>(); System.IO.DriveInfo[] drives = System.IO.DriveInfo.GetDrives(); foreach (System.IO.DriveInfo drive in drives) { if (drive.IsReady == false) { continue; } if (drive.DriveType == System.IO.DriveType.Removable) { continue; } if (drive.DriveType == System.IO.DriveType.CDRom) { continue; } if (drive.DriveType == System.IO.DriveType.Ram) { continue; } if (drive.DriveType == System.IO.DriveType.NoRootDirectory) { continue; } HardDiskInfo hardDisk = new HardDiskInfo(); hardDisk.Name = drive.Name.Replace(":\\", ""); hardDisk.Space = (float)(drive.TotalSize / (1024 * 1024 * 1024.0)); hardDisk.FreeSpace = (float)(drive.TotalFreeSpace / (1024 * 1024 * 1024.0)); info.HardDisks.Add(hardDisk); } } }
/// <summary> /// ��ȡӲ����Ϣ��ϸ�� /// </summary> /// <param name="phdinfo"></param> /// <returns></returns> private static HardDiskInfo GetHardDiskInfo(IdSector phdinfo) { HardDiskInfo hddInfo = new HardDiskInfo(); ChangeByteOrder(phdinfo.sModelNumber); hddInfo.ModuleNumber = Encoding.ASCII.GetString(phdinfo.sModelNumber).Trim(); ChangeByteOrder(phdinfo.sFirmwareRev); hddInfo.Firmware = Encoding.ASCII.GetString(phdinfo.sFirmwareRev).Trim(); ChangeByteOrder(phdinfo.sSerialNumber); hddInfo.SerialNumber = Encoding.ASCII.GetString(phdinfo.sSerialNumber).Trim(); hddInfo.Capacity = phdinfo.ulTotalAddressableSectors / 2 / 1024; return hddInfo; }
private void btnReg_Click(object sender, System.EventArgs e) { string str_ss1, str_ss2, str_ss3, str_ss4, str_ss5; string str_sn1, str_sn2, str_sn3, str_sn4, str_sn5; if (txts5.Text.Trim().Length != 5) { MessageBox.Show("注册序列号不正确,请检查!", "系统提示", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error); return; } else { str_sn5 = txts5.Text.Trim(); str_ss1 = txts5.Text.Trim().Substring(4, 1); } if (txts4.Text.Trim().Length != 5) { MessageBox.Show("注册序列号不正确,请检查!", "系统提示", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error); return; } else { str_sn4 = txts4.Text.Trim(); str_ss2 = txts4.Text.Trim().Substring(3, 1); } if (txts3.Text.Trim().Length != 5) { MessageBox.Show("注册序列号不正确,请检查!", "系统提示", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error); return; } else { str_sn3 = txts3.Text.Trim(); str_ss3 = txts3.Text.Trim().Substring(2, 1); } if (txts2.Text.Trim().Length != 5) { MessageBox.Show("注册序列号不正确,请检查!", "系统提示", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error); return; } else { str_sn2 = txts2.Text.Trim(); str_ss4 = txts2.Text.Trim().Substring(1, 1); } if (txts1.Text.Trim().Length != 5) { MessageBox.Show("注册序列号不正确,请检查!", "系统提示", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error); return; } else { str_sn1 = txts1.Text.Trim(); str_ss5 = txts1.Text.Trim().Substring(0, 1); } //读硬盘的序列号 string str_SerialNumber; string str_nb1, str_nb2, str_nb3, str_nb4, str_nb5; HardDiskInfo hdd = AtapiDevice.GetHddInfo(0); // 第一个硬盘 str_SerialNumber = hdd.SerialNumber.ToString(); //AtapiDevice.getHDDID().Trim();// str_nb1 = str_SerialNumber.Substring(0, 1); str_nb2 = str_SerialNumber.Substring(1, 1); str_nb3 = str_SerialNumber.Substring(2, 1); str_nb4 = str_SerialNumber.Substring(3, 1); str_nb5 = str_SerialNumber.Substring(4, 1); if (str_nb1 == str_ss1 && str_nb2 == str_ss2 && str_nb3 == str_ss3 && str_nb4 == str_ss4 && str_nb5 == str_ss5) { //加密 DESEncryptor dese1 = new DESEncryptor(); dese1.InputString = str_sn1 + "-" + str_sn2 + "-" + str_sn3 + "-" + str_sn4 + "-" + str_sn5; dese1.EncryptKey = "zhenghua0lhgynkm0"; dese1.DesEncrypt(); string mingWen = dese1.OutString; dese1 = null; //写注册表 string name = "ProductKey"; string tovalue = mingWen; string[] subkeyNames; bool _exist = false; if (tovalue != "") { RegistryKey hklm = Registry.LocalMachine; RegistryKey software = hklm.OpenSubKey("SOFTWARE", true); subkeyNames = software.GetSubKeyNames(); foreach (string keyName in subkeyNames) { if (keyName == "KMMWAMS") { RegistryKey aimdir = software.OpenSubKey("KMMWAMS", true); aimdir.SetValue(name, tovalue); _exist = true; } } if (!_exist) { RegistryKey aimdir = software.CreateSubKey("KMMWAMS"); aimdir.SetValue(name, tovalue); } MessageBox.Show("恭喜,您已成功注册,系统将自动退出,稍后请重新启动会员管理系统!", "系统提示", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Information); Application.Exit(); } else { MessageBox.Show("注册失败,请稍后重试!", "系统提示", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error); return; } } else { MessageBox.Show("注册序列号不正确,请检查!", "系统提示", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error); return; } }
public static RegisterInfo getRegisterInfo() { if (registerInfo.VersionType == null) { registerInfo.VersionType = "UN_SUPPORT"; try { if (File.Exists(SystemUtils.getCurrentPath() + "\\license.info")) { //0:company_name,1:end_date,2:version_type String[] info = FileUtils.read("license.info").Split('#'); registerInfo.CompanyName = info[0]; registerInfo.EndDate = info[1]; String keyData = FileUtils.read("license.key"); if (keyData != null) { HardDiskInfo hardDiskInfo = HardInfoUtils.getDiskInfo(0); if (RegisterService.verify(keyData, RegisterService.getRegisterString(registerInfo.CompanyName, "1900-01-01", registerInfo.EndDate, HardInfoUtils.getCpuSerialNumber(), hardDiskInfo.SerialNumber, Convert.ToString(hardDiskInfo.Capacity), info[2]))) { String newDate = DateUtils.getRealSysDate(); if (newDate.Length < 10) { MessageBox.Show("没有取得时间,请在保证网络能连接情况下重启该程序"); registerInfo.VersionType = "CLOSE"; } //判断日期 DateTime nowDT = Convert.ToDateTime(newDate.Substring(0, 10)); DateTime end = Convert.ToDateTime(registerInfo.EndDate); if (nowDT.Subtract(end).TotalDays <= 0) { registerInfo.VersionType = info[2]; } else { MessageBox.Show("您的授权日期:" + end + "已过期,~请与销售联系购买新的许可"); registerInfo.VersionType = "CLOSE"; } } else { MessageBox.Show("序列号不一致~请与销售联系"); registerInfo.VersionType = "CLOSE"; } } else { MessageBox.Show("当前目录下无法找到注册文件license.key,请联系销售购买获得序列号!"); registerInfo.VersionType = "CLOSE"; } } } catch { MessageBox.Show("检查软件许可时出现异常,请重新启动软件"); } } return(registerInfo); }
private void button1_Click(object sender, EventArgs e) { if ("".Equals(tb_companyName.Text.Trim())) { MessageBox.Show("公司名不能为空"); return; } if (tb_companyName.Text.Trim().IndexOf("@") > -1 || tb_companyName.Text.Trim().IndexOf("#") > -1 || tb_companyName.Text.Trim().IndexOf("|") > -1) { MessageBox.Show("公司名不能为特殊字符"); return; } if ("".Equals(tb_mailName.Text.Trim())) { MessageBox.Show("邮箱名与电话不能都为空,后续软件升级信息将通过邮箱发送至您~"); return; } if (tb_mailName.Text.Trim().Length > 40) { MessageBox.Show("邮箱名太长,不符合规范"); return; } if (tb_companyName.Text.Trim().IndexOf("#") > -1) { MessageBox.Show("邮箱名不能含特殊字符#"); return; } if ("".Equals(tb_telName.Text.Trim())) { MessageBox.Show("电话不能都为空"); return; } if (tb_telName.Text.Trim().IndexOf("#") > -1) { MessageBox.Show("电话不能含特殊字符#"); return; } if (tb_telName.Text.Trim().Length > 30) { MessageBox.Show("电话太长,不符合规范"); return; } String key = ""; try { String versionType = chk_isFull.Checked ? "FULL" : "TRIAL"; String companyName = tb_companyName.Text.Trim(); String mail = tb_mailName.Text.Trim(); String tel = tb_telName.Text.Trim(); String startDate = "1900-01-01"; String endDate = null; //试用期1天 if (chk_isFull.Checked) { endDate = "2020-01-01"; } else { endDate = Convert.ToDateTime(DateUtils.getRealSysDate().Substring(0, 10)).AddDays(1).ToString("yyyy-MM-dd"); } //写入注册信息 FileUtils.write("license.info", companyName + "#" + endDate + "#" + versionType + "#" + mail + "#" + tel); HardDiskInfo hardDiskInfo = HardInfoUtils.getDiskInfo(0); key = RegisterService.encode(RegisterService.getRegisterString(companyName, startDate, endDate, HardInfoUtils.getCpuSerialNumber(), hardDiskInfo.SerialNumber, Convert.ToString(hardDiskInfo.Capacity), versionType)); //发送邮件 { SmtpClient client = new SmtpClient("smtp.263.net", 25); client.EnableSsl = false; client.Credentials = new System.Net.NetworkCredential("sta_sales10", "911911ds"); String mailContent = "邮箱:" + mail + Environment.NewLine; mailContent += "电话:" + tel + Environment.NewLine; mailContent += "注册信息:" + key; MailMessage mailMessage = new MailMessage("*****@*****.**", "*****@*****.**", tb_companyName.Text, mailContent); //设置邮件的格式 mailMessage.IsBodyHtml = false; //设置邮件的发送级别 mailMessage.Priority = MailPriority.Normal; //FileUtils.write("license.sign", key); client.Send(mailMessage); } MessageBox.Show("申请提交成功"); } catch (Exception ex) { FileUtils.write("license.sign", key); MessageBox.Show("申请提交失败:" + ex.Message); } this.Close(); }