Beispiel #1
0
        public static bool Parse(string act, string reg)
        {
            Version version = Version.Demo;

            if (reg.Length != 29)
            {
                Alert.Show("Mã đăng kí không đúng !", Color.Red);
                version = Version.Demo;
                return(false);
            }

            string x    = Backward(reg.ToUpper());
            long   num3 = 0;
            long   num4 = 0;
            long   num2 = 0;

            char[] trimChars = new char[] { '0' };
            string str       = x.Substring(0, 5);

            if (!isMACValid(str))
            {
                Alert.Show("Mã đăng kí không đúng !", Color.Red);
                version = Version.Demo;
                return(false);
            }
            string aaa = x.Substring(5, 6);
            string a   = Sc.FillCharacter(SystemInfo.RunQuery("Processor", "ProcessorId"), 3);
            string b   = Sc.FillCharacter(SystemInfo.RunQuery("BaseBoard", "Product"), 3);

            if (aaa != a + b)
            {
                Alert.Show("Mã đăng kí không đúng !", Color.Red);
                version = Version.Demo;
                return(false);
            }
            Radix.Decode(x.Substring(11, 6).TrimStart(trimChars), 0x24L, ref num3);
            long gUIDValue = GetGUIDValue(act.Replace("-", "").Replace(" ", "").ToUpper());

            if (num3 != gUIDValue)
            {
                Alert.Show("Mã đăng kí không đúng !", Color.Red);
                version = Version.Demo;
                return(false);
            }
            Radix.Decode(x.Substring(17, 6).TrimStart(trimChars), 0x24L, ref num4);
            StaticClass.m_Version = (int)num4;
            if ((StaticClass.m_Version & 0x88) == 0x88)
            {
                version = Version.Pro;
            }
            else if ((StaticClass.m_Version & 0x888) == 0x888)
            {
                version = Version.Enterprise;
            }
            else
            {
                version = Version.Demo;
            }
            Radix.Decode(x.Substring(23, 6).TrimStart(trimChars), 0x24L, ref num2);
            DateTime time = DateTime.FromOADate((double)num2);

            if ((DateTime.Compare(DateTime.Today, time) > 0))
            {
                Alert.Show("License hết hạn !", Color.Red);
                version = Version.Demo;
                return(false);
            }
            StaticClass.version = version;
            return(true);
        }