private void bActivation_Click(object sender, EventArgs e)
        {
            byte[] key = ASCIIEncoding.ASCII.GetBytes("DIAR");

            /*RC4 encoder = new RC4(key);
             * byte[] testBytes = ASCIIEncoding.ASCII.GetBytes(m_strCode);
             * byte[] result2 = encoder.Encode(testBytes, testBytes.Length);
             * string encryptedString = encoder.GetByteString(result2);// ASCIIEncoding.ASCII.GetString(result);*/

            RC4 decoder = new RC4(key);

            byte[] result          = decoder.SetByteString(teActivationKey.Text);
            byte[] decryptedBytes  = decoder.Decode(result, result.Length);
            string decryptedString = ASCIIEncoding.ASCII.GetString(decryptedBytes);

            if (decryptedString == m_strCode)
            {
                SQLiteConnection con = new SQLiteConnection(global::DiarMain.Properties.Settings.Default.diarConnectionString);
                try
                {
                    con.Open();
                    SQLiteCommand com = new SQLiteCommand(con);
                    com.CommandType = CommandType.Text;
                    com.CommandText = "INSERT INTO Licenses (Code) VALUES ('" + teActivationKey.Text + "')";
                    com.ExecuteNonQuery();
                    con.Close();
                }
                catch (SQLiteException ex)
                {
                    MyLocalizer.XtraMessageBoxShow("Не удалось подключиться к базе данных. Описание: " + ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }

                MyLocalizer.XtraMessageBoxShow("Активация успешно произведена.\nНеобходимо перезапустить программу.", "Сообщение", MessageBoxButtons.OK, MessageBoxIcon.Information);
                Close();
            }
            else
            {
                MyLocalizer.XtraMessageBoxShow("Неверный ключ активации.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Exemple #2
0
        static void Main()
        {
            try
            {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);

                //AppDomain.CurrentDomain.SetData("DataDirectory", Environment.CurrentDirectory);

                AppDomain.CurrentDomain.AssemblyResolve += (sender, args) =>
                {
                    // В вашем случае в args.Name будет лежать строка
                    // Oracle.ManagedDataAccess, Version=4.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342
                    // Также сюда вам необходимо каким-то образом передать каталог, где лежит COM-компонент
                    // и зависимая сборка (например, считать через реестр: HKEY_CLASSES_ROOT\CLSID\{guid_вашего_компонента}\InprocServer32)
                    // Пусть comPath - каталог, где лежит ваша зависимая сборка

                    string depAssemblyFileName = new AssemblyName(args.Name).Name + ".dll";
                    string depAssemblyPath     = Path.Combine("", depAssemblyFileName);
                    return(Assembly.Load(depAssemblyPath));
                };

                //DevExpress.UserSkins.SkinFHA fha = new DevExpress.UserSkins.SkinFHA();
                //string str = fha.SkinInfo1[0];


                //string str = typeof(DevExpress.UserSkins.SkinFHA).ToString();
                try
                {
                    RegisterAssembly("/DLL");
                }
                catch (Exception ex)
                {
                    RegisterAssembly("");
                }

                /*DevExpress.Skins.SkinManager.Default.RegisterAssembly(typeof(DevExpress.UserSkins.SkinHARG).Assembly); //Register!
                 * DevExpress.Skins.SkinManager.Default.RegisterAssembly(typeof(DevExpress.UserSkins.SkinVibro).Assembly); //Register!
                 * DevExpress.Skins.SkinManager.Default.RegisterAssembly(typeof(DevExpress.UserSkins.SkinVisual).Assembly); //Register!
                 * DevExpress.Skins.SkinManager.Default.RegisterAssembly(typeof(DevExpress.UserSkins.SkinParameter).Assembly); //Register!
                 * DevExpress.Skins.SkinManager.Default.RegisterAssembly(typeof(DevExpress.UserSkins.SkinWarm).Assembly); //Register!
                 * DevExpress.Skins.SkinManager.Default.RegisterAssembly(typeof(DevExpress.UserSkins.SkinPassport).Assembly); //Register!
                 * DevExpress.Skins.SkinManager.Default.RegisterAssembly(typeof(DevExpress.UserSkins.SkinReport).Assembly); //Register!
                 * DevExpress.Skins.SkinManager.Default.RegisterAssembly(typeof(DevExpress.UserSkins.SkinAdd).Assembly); //Register!
                 * DevExpress.Skins.SkinManager.Default.RegisterAssembly(typeof(DevExpress.UserSkins.SkinAdd2).Assembly); //Register!
                 * DevExpress.Skins.SkinManager.Default.RegisterAssembly(typeof(DevExpress.UserSkins.SkinElectrical).Assembly); //Register!*/

                DevExpress.UserSkins.BonusSkins.Register();
                DevExpress.UserSkins.OfficeSkins.Register();

                if (File.Exists(AppDomain.CurrentDomain.BaseDirectory + "DB\\diar.sqlite"))
                {
                    Properties.Settings.Default["diarConnectionString"] = "data source=" + AppDomain.CurrentDomain.BaseDirectory + "DB\\diar.sqlite";
                }
                else
                {
                    if (File.Exists(AppDomain.CurrentDomain.BaseDirectory + "diar.sqlite"))
                    {
                        Properties.Settings.Default["diarConnectionString"] = "data source=" + AppDomain.CurrentDomain.BaseDirectory + "diar.sqlite";
                    }
                    else
                    {
                        MyLocalizer.XtraMessageBoxShow("Не удалось подключиться к базе данных. Описание: отсутствует файл diar.sqlite.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }
                }
                AppearanceObject.DefaultFont = new Font("Segoe UI", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204)));

                // -----------------
                // проверка лицензии
                // -----------------

                string testString = GetUniqueHardwaeId();

                byte[] key = ASCIIEncoding.ASCII.GetBytes("DIAR");

                RC4    encoder         = new RC4(key);
                byte[] testBytes       = ASCIIEncoding.ASCII.GetBytes(testString);
                byte[] result          = encoder.Encode(testBytes, testBytes.Length);
                string encryptedString = encoder.GetByteString(result);// ASCIIEncoding.ASCII.GetString(result);

                SQLiteConnection con                 = new SQLiteConnection(global::DiarMain.Properties.Settings.Default.diarConnectionString);
                bool             bNoLicense          = true;
                long             bAddPassportMessage = 0;
                string           strLicenseCode      = "";
                try
                {
                    con.Open();

                    SQLiteCommand com = new SQLiteCommand(con);
                    com.CommandType = CommandType.Text;

                    com.CommandText = "Select Code, AddPassportMessage FROM Licenses WHERE Code = '" + encryptedString + "'";

                    SQLiteDataReader dr = com.ExecuteReader();
                    if (dr.HasRows)
                    {
                        bNoLicense          = false;
                        strLicenseCode      = dr["Code"].ToString();
                        bAddPassportMessage = Convert.ToInt64(dr["AddPassportMessage"]);
                    }
                    dr.Close();

                    con.Close();
                }
                catch (SQLiteException ex)
                {
                    MyLocalizer.XtraMessageBoxShow("Не удалось подключиться к базе данных. Описание: " + ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }

                /*MyLocalizer.XtraMessageBoxShow(encryptedString, "", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                *
                *  byte[] key2 = ASCIIEncoding.ASCII.GetBytes("DIAR");
                *
                *  RC4 decoder = new RC4(key2);
                *  result = decoder.SetByteString(encryptedString);
                *  byte[] decryptedBytes = decoder.Decode(result, result.Length);
                *  string decryptedString = ASCIIEncoding.ASCII.GetString(decryptedBytes);
                *
                *  MyLocalizer.XtraMessageBoxShow(decryptedString, "", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);*/

                // -----------------

                if (bNoLicense)
                {
                    LicenseForm f = new LicenseForm();
                    f.m_strCode = testString;
                    Application.Run(f);
                }
                else
                {
                    try
                    {
                        con.Open();
                        SQLiteCommand com = new SQLiteCommand(con);
                        com.CommandText = "Select CurVersion from Version";
                        com.CommandType = CommandType.Text;
                        SQLiteDataReader dr = com.ExecuteReader();

                        //Decimal curVersion = new decimal(0);
                        while (dr.Read())
                        {
                            m_strVersion = Convert.ToDecimal(dr.GetValue(0));
                        }
                        dr.Close();
                        con.Close();

                        ServicePackForm sp = new ServicePackForm();
                        if (m_strVersion < sp.m_CurVersion)
                        {
                            sp.m_DBVersion = m_strVersion;
                            if (sp.ShowDialog() != System.Windows.Forms.DialogResult.OK)
                            {
                                return;
                            }
                            ;
                        }

                        // считываем доступные типы
                        con.Open();
                        SQLiteCommand comEquipmentKinds = new SQLiteCommand(con);
                        comEquipmentKinds.CommandText = "Select EquipmentKindID, EquipmentKindName FROM EquipmentKinds WHERE Disable = 0";
                        comEquipmentKinds.CommandType = CommandType.Text;
                        SQLiteDataReader drEquipmentKinds = comEquipmentKinds.ExecuteReader();
                        if (drEquipmentKinds.HasRows)
                        {
                            while (drEquipmentKinds.Read())
                            {
                                Inspection.m_dictActualEquipmentKinds[(Equipment.EquipmentKind)Convert.ToInt64(drEquipmentKinds["EquipmentKindID"])] = drEquipmentKinds["EquipmentKindName"].ToString();
                            }
                        }
                        drEquipmentKinds.Close();

                        con.Close();
                    }
                    catch (SQLiteException ex)
                    {
                        MyLocalizer.XtraMessageBoxShow("Не удалось подключиться к базе данных. Описание: " + ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }

                    Inspection.m_listEquipmentInspections[Equipment.EquipmentKind.Transformer] = new List <Inspection.InspectionType>();
                    Inspection.m_listEquipmentInspections[Equipment.EquipmentKind.Transformer].Add(Inspection.InspectionType.Visual);
                    Inspection.m_listEquipmentInspections[Equipment.EquipmentKind.Transformer].Add(Inspection.InspectionType.FHA);
                    Inspection.m_listEquipmentInspections[Equipment.EquipmentKind.Transformer].Add(Inspection.InspectionType.HARG);
                    Inspection.m_listEquipmentInspections[Equipment.EquipmentKind.Transformer].Add(Inspection.InspectionType.Warm);
                    Inspection.m_listEquipmentInspections[Equipment.EquipmentKind.Transformer].Add(Inspection.InspectionType.Vibro);

                    Inspection.m_listEquipmentInspections[Equipment.EquipmentKind.AirSwitch] = new List <Inspection.InspectionType>();
                    Inspection.m_listEquipmentInspections[Equipment.EquipmentKind.AirSwitch].Add(Inspection.InspectionType.Visual);
                    Inspection.m_listEquipmentInspections[Equipment.EquipmentKind.AirSwitch].Add(Inspection.InspectionType.Warm);
                    Inspection.m_listEquipmentInspections[Equipment.EquipmentKind.AirSwitch].Add(Inspection.InspectionType.Parameter);
                    Inspection.m_listEquipmentInspections[Equipment.EquipmentKind.AirSwitch].Add(Inspection.InspectionType.Electrical);

                    Inspection.m_listEquipmentInspections[Equipment.EquipmentKind.OilLessSwitch] = new List <Inspection.InspectionType>();
                    Inspection.m_listEquipmentInspections[Equipment.EquipmentKind.OilLessSwitch].Add(Inspection.InspectionType.Visual);
                    Inspection.m_listEquipmentInspections[Equipment.EquipmentKind.OilLessSwitch].Add(Inspection.InspectionType.Warm);
                    Inspection.m_listEquipmentInspections[Equipment.EquipmentKind.OilLessSwitch].Add(Inspection.InspectionType.Parameter);
                    Inspection.m_listEquipmentInspections[Equipment.EquipmentKind.OilLessSwitch].Add(Inspection.InspectionType.Electrical);

                    Inspection.m_listEquipmentInspections[Equipment.EquipmentKind.OilTankSwitch] = new List <Inspection.InspectionType>();
                    Inspection.m_listEquipmentInspections[Equipment.EquipmentKind.OilTankSwitch].Add(Inspection.InspectionType.Visual);
                    Inspection.m_listEquipmentInspections[Equipment.EquipmentKind.OilTankSwitch].Add(Inspection.InspectionType.FHA);
                    Inspection.m_listEquipmentInspections[Equipment.EquipmentKind.OilTankSwitch].Add(Inspection.InspectionType.HARG);
                    Inspection.m_listEquipmentInspections[Equipment.EquipmentKind.OilTankSwitch].Add(Inspection.InspectionType.Warm);
                    Inspection.m_listEquipmentInspections[Equipment.EquipmentKind.OilTankSwitch].Add(Inspection.InspectionType.Parameter);
                    Inspection.m_listEquipmentInspections[Equipment.EquipmentKind.OilTankSwitch].Add(Inspection.InspectionType.Electrical);

                    Inspection.m_dictInspections[Inspection.InspectionType.Visual]     = new KeyValuePair <string, string>("Визуальное обследование", "Visual");
                    Inspection.m_dictInspections[Inspection.InspectionType.FHA]        = new KeyValuePair <string, string>("ФХА", "FHA");
                    Inspection.m_dictInspections[Inspection.InspectionType.HARG]       = new KeyValuePair <string, string>("ХАРГ", "HARG");
                    Inspection.m_dictInspections[Inspection.InspectionType.Warm]       = new KeyValuePair <string, string>("Тепловизионный контроль", "Warm");
                    Inspection.m_dictInspections[Inspection.InspectionType.Vibro]      = new KeyValuePair <string, string>("Вибрационное обследование", "Vibro");
                    Inspection.m_dictInspections[Inspection.InspectionType.Parameter]  = new KeyValuePair <string, string>("Определение характеристик", "Parameter");
                    Inspection.m_dictInspections[Inspection.InspectionType.Electrical] = new KeyValuePair <string, string>("Электрические измерения", "Electrical");

                    MainCheckForm f = new MainCheckForm();

                    /*f.m_bAddPassportMessage = false;
                     * if (bAddPassportMessage != 0) f.m_bAddPassportMessage = true;
                     * f.m_strLicenseCode = strLicenseCode;*/
                    //f.ShowDialog();
                    Application.Run(f);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message + "(" + ex.StackTrace + ")", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }