Exemplo n.º 1
0
 void UpdateVauesFromRegistryData(RegistryNodeData data)
 {
     Invoke((MethodInvoker) delegate()
     {
         lvKeyDisplay.Items.Clear();
         if (data.VauesDeniedAccess)
         {
             lvKeyDisplay.View = View.List;
             lvKeyDisplay.Items.Add("Access denied");
         }
         else
         {
             lvKeyDisplay.View = View.Details;
             foreach (var rgKey in data.Keys)
             {
                 ListViewItem i = new ListViewItem(rgKey.Key);
                 i.SubItems.Add(rgKey.Value);
                 lvKeyDisplay.Items.Add(i);
             }
         }
         string path = data.Path;
         if (path == string.Empty)
         {
             path = "\\";
         }
         navLabel.Text = path;
     });
 }
Exemplo n.º 2
0
        void LoadValues(TreeNode Node)
        {
            if (Node == null)
            {
                return;
            }
            if (IsLoading)
            {
                return;
            }
            RegistryNodeData data = (RegistryNodeData)Node.Tag;

            if (data.LoadedValues)
            {
                UpdateVauesFromRegistryData(data);
                return;
            }
            IsLoading    = true;
            UpdatingNode = Node;
            TreeNode rootNode = GetRootNode(Node);

            Invoke((MethodInvoker) delegate()
            {
                lvKeyDisplay.Items.Clear();
                lvKeyDisplay.View = View.List;
                lvKeyDisplay.Items.Add("Loading...");
            });

            RegistryKeyType key = keyFromNode(rootNode);

            Client.Send((byte)NetworkCommand.RegistryEdit, (byte)RegistryCommand.UpdateKeys, (byte)key, data.Path);
        }
Exemplo n.º 3
0
        private void deleteToolStripMenuItem_Click(object sender, EventArgs e)
        {
            TreeNode selectedNode = tvRegistryNavigator.SelectedNode;

            if (selectedNode == null)
            {
                return;
            }
            if (lvKeyDisplay.SelectedItems.Count < 1)
            {
                return;
            }
            if (lvKeyDisplay.View == View.List)
            {
                return;
            }
            string key = lvKeyDisplay.SelectedItems[0].Text;

            if (MessageBox.Show(string.Format("Delete the registry key {0}?", key), "Delete registry key", MessageBoxButtons.YesNo) == DialogResult.Yes)
            {
                RegistryKeyType  regKey = keyFromNode(GetRootNode(selectedNode));
                RegistryNodeData data   = (RegistryNodeData)selectedNode.Tag;
                Client.Send((byte)NetworkCommand.RegistryEdit, (byte)RegistryCommand.DeleteValue, (byte)regKey, data.Path, key);
                data.LoadedValues = false;
                LoadValues(selectedNode);
            }
        }
Exemplo n.º 4
0
        private void lvKeyDisplay_DoubleClick(object sender, EventArgs e)
        {
            TreeNode selectedNode = tvRegistryNavigator.SelectedNode;

            if (selectedNode == null)
            {
                return;
            }
            if (lvKeyDisplay.SelectedItems.Count < 1)
            {
                return;
            }
            if (lvKeyDisplay.View == View.List)
            {
                return;
            }
            string key = lvKeyDisplay.SelectedItems[0].Text;

            using (editRegistryKeyForm erkf = new editRegistryKeyForm(key))
            {
                if (erkf.ShowDialog() == DialogResult.OK)
                {
                    RegistryKeyType  regKey = keyFromNode(GetRootNode(selectedNode));
                    RegistryNodeData data   = (RegistryNodeData)selectedNode.Tag;
                    Client.Send((byte)NetworkCommand.RegistryEdit, (byte)RegistryCommand.SetValue, (byte)regKey, data.Path, key, erkf.NewValue);
                    data.LoadedValues = false;
                    LoadValues(selectedNode);
                }
            }
        }
Exemplo n.º 5
0
 public void UpdateNode(string[] nodes)
 {
     if (!IsLoading || UpdatingNode == null)
     {
         return;
     }
     foreach (string n in nodes)
     {
         Invoke((MethodInvoker) delegate()
         {
             TreeNode tn                 = SetupNode(n);
             RegistryNodeData nd         = (RegistryNodeData)tn.Tag;
             RegistryNodeData parentData = (RegistryNodeData)UpdatingNode.Tag;
             if (parentData.Path == string.Empty)
             {
                 nd.Path = n;
             }
             else
             {
                 nd.Path = string.Format("{0}\\{1}", parentData.Path, n);
             }
             tn.Tag = nd;
             UpdatingNode.Nodes.Add(tn);
             UpdatingNode.Nodes.Remove(LoadingNode);
             parentData.LoadedNodes = true;
             IsLoading = false;
         });
     }
 }
Exemplo n.º 6
0
        private void TvRegistryNavigator_BeforeCollapse(object sender, TreeViewCancelEventArgs e)
        {
            RegistryNodeData data = (RegistryNodeData)e.Node.Tag;

            if (!data.LoadedNodes)
            {
                e.Cancel = true;
            }
        }
Exemplo n.º 7
0
 public void UpdateEmptyNode()
 {
     Invoke((MethodInvoker) delegate()
     {
         UpdatingNode.Nodes.Remove(LoadingNode);
         RegistryNodeData parentData = (RegistryNodeData)UpdatingNode.Tag;
         parentData.LoadedNodes      = true;
         IsLoading = false;
     });
 }
Exemplo n.º 8
0
        private void refreshToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            TreeNode Node = tvRegistryNavigator.SelectedNode;

            if (Node != null)
            {
                RegistryNodeData data = (RegistryNodeData)Node.Tag;
                data.LoadedValues = false;
                LoadValues(Node);
            }
        }
Exemplo n.º 9
0
        private void refreshToolStripMenuItem_Click(object sender, EventArgs e)
        {
            TreeNode selectedNode = tvRegistryNavigator.SelectedNode;

            if (selectedNode != null)
            {
                RegistryNodeData data = (RegistryNodeData)selectedNode.Tag;
                data.LoadedNodes = false;
                selectedNode.Nodes.Clear();
                RefreshNode(selectedNode);
            }
        }
Exemplo n.º 10
0
        public void UpdateValues(Dictionary <string, string> keys)
        {
            if (!IsLoading || keys == null || UpdatingNode == null)
            {
                return;
            }

            RegistryNodeData parentData = (RegistryNodeData)UpdatingNode.Tag;

            parentData.Keys         = keys;
            parentData.LoadedValues = true;
            UpdateVauesFromRegistryData(parentData);
            IsLoading = false;
        }
Exemplo n.º 11
0
        public void ValueDeniedAccess()
        {
            if (!IsLoading || UpdatingNode == null)
            {
                return;
            }

            Invoke((MethodInvoker) delegate()
            {
                RegistryNodeData parentData  = (RegistryNodeData)UpdatingNode.Tag;
                parentData.LoadedValues      = true;
                parentData.VauesDeniedAccess = true;
                UpdateVauesFromRegistryData(parentData);
                IsLoading = false;
            });
        }
Exemplo n.º 12
0
        bool RefreshNode(TreeNode Node)
        {
            if (Node.Equals(LoadingNode))
            {
                return(true);
            }
            RegistryNodeData data = (RegistryNodeData)Node.Tag;

            if (!data.LoadedNodes)
            {
                if (IsLoading)
                {
                    return(true);
                }
                IsLoading = true;

                if (Node.Nodes.Count > 0)
                {
                    Node.Nodes.Remove(Node.FirstNode);
                }
                Node.Nodes.Add(LoadingNode);

                UpdatingNode = Node;

                TreeNode rootNode = GetRootNode(Node);


                RegistryKeyType key = keyFromNode(rootNode);

                Console.WriteLine("Root Node: {0}", rootNode.Text);

                string path = data.Path;

                Console.WriteLine("Node path: {0}", path);

                Client.Send((byte)NetworkCommand.RegistryEdit, (byte)RegistryCommand.UpdateNodes, (byte)key, path);
            }
            return(false);
        }
Exemplo n.º 13
0
        private void newToolStripMenuItem_Click(object sender, EventArgs e)
        {
            TreeNode selectedNode = tvRegistryNavigator.SelectedNode;

            if (selectedNode == null)
            {
                return;
            }
            if (lvKeyDisplay.View == View.List)
            {
                return;
            }
            using (addRegistryKeyForm arkf = new addRegistryKeyForm())
            {
                if (arkf.ShowDialog() == DialogResult.OK)
                {
                    RegistryKeyType  regKey = keyFromNode(GetRootNode(selectedNode));
                    RegistryNodeData data   = (RegistryNodeData)selectedNode.Tag;
                    Client.Send((byte)NetworkCommand.RegistryEdit, (byte)RegistryCommand.SetValue, (byte)regKey, data.Path, arkf.NewKey, arkf.NewValue);
                    data.LoadedValues = false;
                    LoadValues(selectedNode);
                }
            }
        }