예제 #1
0
        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);
        }
예제 #2
0
        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);
        }
예제 #3
0
        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;
            }
        }
예제 #4
0
            /// <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);
                }
            }
예제 #5
0
        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);
        }
예제 #6
0
            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);
            }
예제 #7
0
        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);
                }
            }
        }
예제 #8
0
        /// <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;
            }
        }
예제 #10
0
        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);
        }
예제 #11
0
        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();
        }