Пример #1
0
        // 树节点KEY名编辑完成事件
        private void treeView_Registry_AfterLabelEdit(object sender, NodeLabelEditEventArgs e)
        {
            // 关闭TreeView的编辑功能
            MainForm.main.treeView_Registry.LabelEdit = false;
            string keyName = e.Label == null ? e.Node.Text : e.Label;

            try
            {
                // 获取其父节点的RegistryKey对象
                RegistryKey readOnlyParent = e.Node.Parent.Tag as RegistryKey;
                // 将父节点的RegistryKey对象转换为cRegKey对象
                cRegKey parent = cRegKey.Parse(readOnlyParent.Name, true);
                // 父节点下建立我们的子KEY
                parent.Key.CreateSubKey(keyName);
                // 存储子节点当前完整路径
                e.Node.Name = parent.Key.Name + "\\" + keyName;
                // 关联当前子节点对象
                e.Node.Tag = cRegKey.Parse(e.Node.Name).Key;
            }
            catch
            {
                e.Node.Remove();
                MessageBox.Show("[x_x]:" + Common.CommonFunction.GetLastError32());
            }
        }
Пример #2
0
        /// <summary>
        /// 获取当前键的子键,用cRegKey对象保存
        /// </summary>
        /// <param name="key"></param>
        /// <returns></returns>
        internal static List <cRegKey> GetSubKeys(RegistryKey key)
        {
            // 获取父节点的子节点数目
            int subKeyCount = key.SubKeyCount;

            // 如果父节点下没有子节点,就返回一个空cRegKey对象
            if (subKeyCount.Equals(0))
            {
                return(new List <cRegKey>());
            }
            // 根据子节点数目创建对象集合
            List <cRegKey> subKeys = new List <cRegKey>(subKeyCount);

            // 保存子节点名称字符串集合,用于遍历操作
            string[] subKeyNames = key.GetSubKeyNames();
            // 遍历父节点的子节点集合,填充到subKeys集合中
            for (int i = 0; i < subKeyNames.Length; i++)
            {
                try
                {
                    string  keyName = subKeyNames[i];
                    cRegKey item    = new cRegKey(keyName, key.OpenSubKey(keyName));
                    subKeys.Add(item);
                }
                catch { }
            }

            return(subKeys);
        }
Пример #3
0
 /// <summary>
 /// 删除VALUE方法
 /// </summary>
 /// <param name="key"></param>
 /// <param name="value"></param>
 /// <returns></returns>
 internal static bool DeleteValue(string key, string value)
 {
     try
     {
         cRegKey regKey = cRegKey.Parse(key, true);
         regKey.Key.DeleteValue(value, false);
     }
     catch
     {
         return(false);
     }
     return(true);
 }
Пример #4
0
        /// <summary>
        /// 添加KEY到TreeView中
        /// </summary>
        /// <param name="parentNode"></param>
        /// <param name="subKey"></param>
        internal static void AddKeyToTree(TreeNode parentNode, cRegKey subKey)
        {
            RegistryKey key = subKey.Key;
            // 根据子节点属性来创建一个新的节点
            TreeNode newNode = CreateNode(key.Name, subKey.Name, key);

            parentNode.Nodes.Add(newNode);
            // 如果子节点下游子节点的话,就先填充一个空节点
            if (key.SubKeyCount > 0)
            {
                newNode.Nodes.Add(CreateNode());
            }
        }
Пример #5
0
 /// <summary>
 /// 删除KEY方法
 /// </summary>
 /// <param name="key"></param>
 /// <returns></returns>
 internal static bool DeleteKey(string key)
 {
     try
     {
         cRegKey child  = cRegKey.Parse(key);
         cRegKey parent = cRegKey.Parse(child.Parent, true);
         parent.Key.DeleteSubKeyTree(child.Name);
     }
     catch
     {
         return(false);
     }
     return(true);
 }