Beispiel #1
0
 /// <inheritdoc />
 /// <summary>
 /// 查询当前注册表状态。
 /// </summary>
 /// <returns>
 /// true表示注册表状态处于开启状态,
 /// false表示注册表状态处于关闭状态。
 /// </returns>
 public override bool CheckStatus()
 {
     foreach (var regStore in OnRegStores)
     {
         if (!regStore.IsNecessary)
         {
             continue;
         }
         try
         {
             var reg = RegCtrl.RegGetValue(regStore.GetRegPath());
             if (reg.LpValue != regStore.LpValue)
             {
                 return(State = false);
             }
         }
         catch (Exception e)
         {
             if (!regStore.IsNull || e.GetType() != typeof(NullReferenceException))
             {
                 throw;
             }
         }
     }
     return(State = true);
 }
Beispiel #2
0
        /// <summary>
        /// 应用进程列表变更。
        /// </summary>
        /// <param name="taskList">
        /// 将应用的进程列表。
        /// </param>
        private void ApplyTaskList(IEnumerable <string> taskList)
        {
            var path = DataContext.GetRegPath(TaskType);

            RegCtrl.RegDelKey(path);
            if ((int)TaskType >> 1 > 0)
            {
                foreach (var task in taskList)
                {
                    RegCtrl.RegSetValue(
                        new RegKey(path.HKey, $"{path.LpSubKey}\\{{{new Guid()}}}", @"ItemData",
                                   RegistryValueKind.String, task));
                }
            }
            else
            {
                var i = 1;
                foreach (var task in taskList)
                {
                    RegCtrl.RegSetValue(
                        new RegKey(path.HKey, path.LpSubKey, i++.ToString(), RegistryValueKind.String, task));
                }
            }
            DataContext.RefrushData();
        }
Beispiel #3
0
 private void BtnSetPwd_Click(object sender, EventArgs e)
 {
     if (TBSetPwd.Text != string.Empty && TBSetPwd.Text == TBConfirmPwd.Text)
     {
         RegCtrl.RegSetValue(new RegKey(Password.HKey, Password.LpSubKey, string.Empty, RegistryValueKind.String, @"Vexease"));
         RegCtrl.RegSetValue(new RegKey(Password.GetRegPath(), RegistryValueKind.String, AESCrypt.Encrypt(TBSetPwd.Text)));
         RefrushPwd();
         return;
     }
     MessageBox.Show("请输入密码!");
 }
Beispiel #4
0
        /// <summary>
        /// 初始化进程信息。
        /// </summary>
        /// <param name="taskType">
        /// 进程信息类型。
        /// </param>
        /// <returns>
        /// 进程信息注册表信息。
        /// </returns>
        private static string[] InitTask(TASK_TYPE_FLAGS taskType)
        {
            var path = GetRegPath(taskType);

            string[] regkeys;
            var      list = new ArrayList();

            try
            {
                if ((int)taskType >> 1 > 0)
                {
                    var regs = RegCtrl.RegEnumKey(path);
                    foreach (var reg in regs)
                    {
                        var tmp = RegCtrl.RegGetValue(new RegPath(reg.HKey, reg.LpSubKey, @"ItemData"));
                        var str = tmp.LpValue.ToString();
                        if (tmp.LpKind == RegistryValueKind.ExpandString)
                        {
                            str = RegCtrl.RegGetValue(new RegPath(str, true)).LpValue.ToString();
                        }
                        list.Add(str);
                    }
                }
                else
                {
                    var regs = RegCtrl.RegEnumValue(path);
                    foreach (var reg in regs)
                    {
                        list.Add(reg.LpValue.ToString());
                    }
                }
            }
            catch (Exception e)
            {
                if (e.GetType() != typeof(NullReferenceException))
                {
                    throw new Exception(nameof(InitTask));
                }
            }
            finally
            {
                list.Sort();
                regkeys = list.ToArray() as string[];
            }
            return(regkeys);
        }
Beispiel #5
0
        private void RefrushPwd()
        {
            Password = RegCtrl.RegGetValue(new RegPath(REG_ROOT_KEY.HKEY_CLASSES_ROOT, @"CLSID\{1BB077CA-FEC5-479F-AA85-11CDFBFA4042}", AESCrypt.Encrypt(@"Password")));
            string pwd = Password.LpValue as string;

            if (pwd is null)
            {
                LblCurrentPwd.Text = string.Empty;
            }
            else
            {
                try
                {
                    LblCurrentPwd.Text = AESCrypt.Decrypt(pwd);
                }
                catch
                {
                    LblCurrentPwd.Text = @"密码无效!";
                }
            }
        }
Beispiel #6
0
        /// <inheritdoc />
        /// <summary>
        /// 切换注册表状态。
        /// </summary>
        /// <returns>
        /// true表示切换后注册表处于开启状态。
        /// false表示切换后注册表处于关闭状态。
        /// </returns>
        public override bool SwapStatus()
        {
            var regStores = State ? OffRegStores : OnRegStores;

            foreach (var reg in regStores)
            {
                if (!reg.IsNecessary)
                {
                    continue;
                }
                if (reg.IsNull)
                {
                    RegCtrl.RegDelKey(reg.GetRegPath());
                }
                else
                {
                    RegCtrl.RegSetValue(reg.GetRegKey());
                }
            }
            return(base.SwapStatus());
        }
Beispiel #7
0
 /// <summary>
 /// 修改密码。
 /// </summary>
 /// <param name="pwd">
 /// 密码原文
 /// </param>
 public static void Modify(string pwd)
 {
     RegCtrl.RegSetValue(new RegKey(DataContext.Password.GetRegPath(), RegistryValueKind.String, AESCrypt.Encrypt(pwd)));
     DataContext.RefrushData();
 }
Beispiel #8
0
 private static RegKey InitPwd()
 {
     return(RegCtrl.RegGetValue(new RegPath(REG_ROOT_KEY.HKEY_CLASSES_ROOT, $"CLSID\\{{{MyGuid}}}", AESCrypt.Encrypt(@"Password"))));
 }