[PR #328] [CLOSED] Start of the Registry Editor #1097

Closed
opened 2026-02-27 15:53:05 +03:00 by kerem · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/quasar/Quasar/pull/328
Author: @yankejustin
Created: 8/15/2015
Status: Closed

Base: masterHead: RegistryEditorAddition


📝 Commits (10+)

  • b0fd538 Added the basic Registry Editor Interface
  • 539806e Added .resx file
  • 0162d12 Added logic to the Registry Editor
  • e2259ab Improved Registry Key Traversal
  • c7a31e7 Fixed some conflicts
  • d3505e1 Merge pull request #31 from yankejustin/Conflicts
  • 4f42af2 Fixed broken project file...
  • d05edb8 Added data to the tags
  • 33730db First set of changes
  • 75f61ad Merge pull request #32 from MaxXor/master

📊 Changes

35 files changed (+1992 additions, -39 deletions)

View changed files

📝 Client/Client.csproj (+8 -0)
📝 Client/Core/Commands/CommandHandler.cs (+2 -0)
Client/Core/Commands/RegistryHandler.cs (+44 -0)
📝 Client/Core/Commands/SystemHandler.cs (+18 -18)
📝 Client/Core/Extensions/RegistryKeyExtensions.cs (+25 -2)
Client/Core/Packets/ClientPackets/GetRegistryKeysResponse.cs (+31 -0)
📝 Client/Core/Packets/PacketHandler.cs (+4 -0)
Client/Core/Packets/ServerPackets/DoLoadRegistryKey.cs (+23 -0)
📝 Client/Core/Recovery/Browsers/Firefox.cs (+2 -2)
📝 Client/Core/Recovery/Browsers/InternetExplorer.cs (+2 -2)
📝 Client/Core/Recovery/FtpClients/WinSCP.cs (+1 -1)
Client/Core/Registry/RegSeekerMatch.cs (+27 -0)
Client/Core/Registry/RegistrySeeker.cs (+269 -0)
Client/Core/Registry/RegistrySeekerParams.cs (+39 -0)
📝 Client/Core/SystemCore.cs (+6 -6)
Client/Core/Utilities/RegistryKeyEx.cs (+78 -0)
Client/Enums/RegistrySearchAction.cs (+15 -0)
📝 Client/Program.cs (+2 -0)
Server/Core/Commands/RegistryHandler.cs (+46 -0)
📝 Server/Core/Networking/ConnectionHandler.cs (+2 -0)

...and 15 more files

📄 Description

Current Progess

- This is just the start of the Registry Editor feature. It needs a bit of work before it functions as intended. It needs a bit more logic to view, as well as all of the logic to add, edit, and delete registry keys. - This addition is a good example of how the feature addition should continue; I merely have provided the building blocks necessary for its continued development.

To-Do

1. Correctly add sub-keys to the TreeView. - Order: Correctly maintain the order when making use of the keys sent to the server by the user. I was trying to research the best way to do so, as the collections I normally use to preserve the tree structures are in .NET v4.0 :( - In this situation, it is likely the best idea to use the Tag to maintain the order in the TreeView. As much as I would not like to send the related tag to the Client, it would be the easiest way to ensure order of the returned keys. - Root nodes currently work. It is more of a proof-of-concept to show the current logic works, but needs more added to it. 2. Connect the logic to correctly display the value on the ListView. 3. Adding, Editing, or Deleting the RegistryKeys: - This should come after the order is correctly preserved in the TreeView. - This feature addition also means creating more Forms for the corresponding RegistryKey data type. - This feature addition also means implementing a few more events and packet types when the Client deletes, adds, or edits a RegistryKey. Note: Comments where left in the code to help find more little things that need to be added to the Registry Editor to make it more complete. To find such comments, locate comments that begin with ToDo:.

Questions/Answers

1. Why did I make an additional CommandHandler just for the Registry Editor? - The logic for the Registry Editor feature can grow quite significantly as intended features to add in the feature (add, delete, and edit) are added. It is both the actual logic to handle these requests and responses that can be rather extensive and specific; it is likely to be ~300-500 lines or so of code. 2. Why not just finish implementing the Registry Editor? - There is a huge amount of features to add to make it complete. Besides my lack of time (especially with college coming up very soon), I also feel that others would be more suited for specific tasks. An example for a task that will need to be done would be the creation of nice graphics for the Registry Editor (ehm, @MaxXor) ;) 3. Why must we add more events and types of packets? - In Windows' Registry Editor, it is clearly quite a responsive design. Unfortunately, a responsive design often will require many events to be fired. 4. Am I going bye-bye? - Nope! I will very likely not be able to contribute much for a month or two, but I figured I would post my current progress so any others that wish to help implement this can make it happen.

MaxXor, please do not merge this into master!

I wish to merge this into a new branch for the Registry Editor addition to be worked on more.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/quasar/Quasar/pull/328 **Author:** [@yankejustin](https://github.com/yankejustin) **Created:** 8/15/2015 **Status:** ❌ Closed **Base:** `master` ← **Head:** `RegistryEditorAddition` --- ### 📝 Commits (10+) - [`b0fd538`](https://github.com/quasar/Quasar/commit/b0fd538a4e91706dd0cf05cfcc4510e63be38725) Added the basic Registry Editor Interface - [`539806e`](https://github.com/quasar/Quasar/commit/539806e50fb324bd778784fd0644909e3d810590) Added .resx file - [`0162d12`](https://github.com/quasar/Quasar/commit/0162d12713076383d491538204b40212584d6410) Added logic to the Registry Editor - [`e2259ab`](https://github.com/quasar/Quasar/commit/e2259abf2da3bd51db1e1887f42c11c0d14dd835) Improved Registry Key Traversal - [`c7a31e7`](https://github.com/quasar/Quasar/commit/c7a31e7492d89a52aefe1216c0d4024f2641b239) Fixed some conflicts - [`d3505e1`](https://github.com/quasar/Quasar/commit/d3505e15fc7926830815af2221c4de5a666ca32d) Merge pull request #31 from yankejustin/Conflicts - [`4f42af2`](https://github.com/quasar/Quasar/commit/4f42af283064b3bdf421ec8115c7214a6b414d23) Fixed broken project file... - [`d05edb8`](https://github.com/quasar/Quasar/commit/d05edb849809df62198119ca759ff9e2dff58fc4) Added data to the tags - [`33730db`](https://github.com/quasar/Quasar/commit/33730db25142b837dc1a08f4172d7e8c18e6f2a6) First set of changes - [`75f61ad`](https://github.com/quasar/Quasar/commit/75f61ad4077321fce4703f0db65a8d3fc05b2027) Merge pull request #32 from MaxXor/master ### 📊 Changes **35 files changed** (+1992 additions, -39 deletions) <details> <summary>View changed files</summary> 📝 `Client/Client.csproj` (+8 -0) 📝 `Client/Core/Commands/CommandHandler.cs` (+2 -0) ➕ `Client/Core/Commands/RegistryHandler.cs` (+44 -0) 📝 `Client/Core/Commands/SystemHandler.cs` (+18 -18) 📝 `Client/Core/Extensions/RegistryKeyExtensions.cs` (+25 -2) ➕ `Client/Core/Packets/ClientPackets/GetRegistryKeysResponse.cs` (+31 -0) 📝 `Client/Core/Packets/PacketHandler.cs` (+4 -0) ➕ `Client/Core/Packets/ServerPackets/DoLoadRegistryKey.cs` (+23 -0) 📝 `Client/Core/Recovery/Browsers/Firefox.cs` (+2 -2) 📝 `Client/Core/Recovery/Browsers/InternetExplorer.cs` (+2 -2) 📝 `Client/Core/Recovery/FtpClients/WinSCP.cs` (+1 -1) ➕ `Client/Core/Registry/RegSeekerMatch.cs` (+27 -0) ➕ `Client/Core/Registry/RegistrySeeker.cs` (+269 -0) ➕ `Client/Core/Registry/RegistrySeekerParams.cs` (+39 -0) 📝 `Client/Core/SystemCore.cs` (+6 -6) ➕ `Client/Core/Utilities/RegistryKeyEx.cs` (+78 -0) ➕ `Client/Enums/RegistrySearchAction.cs` (+15 -0) 📝 `Client/Program.cs` (+2 -0) ➕ `Server/Core/Commands/RegistryHandler.cs` (+46 -0) 📝 `Server/Core/Networking/ConnectionHandler.cs` (+2 -0) _...and 15 more files_ </details> ### 📄 Description <h1>Current Progess</h1> - This is just the start of the Registry Editor feature. It needs a bit of work before it functions as intended. It needs a bit more logic to view, as well as all of the logic to add, edit, and delete registry keys. - This addition is a good example of how the feature addition should continue; I merely have provided the building blocks necessary for its continued development. <h1>To-Do</h1> 1. Correctly add sub-keys to the TreeView. - Order: Correctly maintain the order when making use of the keys sent to the server by the user. I was trying to research the best way to do so, as the collections I normally use to preserve the tree structures are in .NET v4.0 :( - In this situation, it is likely the best idea to use the <code>Tag</code> to maintain the order in the TreeView. As much as I would not like to send the related tag to the <code>Client</code>, it would be the <i>easiest</i> way to ensure order of the returned keys. - Root nodes currently work. It is more of a proof-of-concept to show the current logic works, but needs more added to it. 2. Connect the logic to correctly display the value on the ListView. 3. Adding, Editing, or Deleting the RegistryKeys: - This should come after the order is correctly preserved in the TreeView. - This feature addition also means creating more <code>Forms</code> for the corresponding <code>RegistryKey</code> data type. - This feature addition also means implementing a few more events and packet types when the <code>Client</code> deletes, adds, or edits a <code>RegistryKey</code>. <b>Note: Comments where left in the code to help find more little things that need to be added to the Registry Editor to make it more complete.</b> <b>To find such comments, locate comments that begin with <i>ToDo:</i>.</b> <h1>Questions/Answers</h1> 1. Why did I make an additional <code>CommandHandler</code> just for the Registry Editor? - The logic for the Registry Editor feature can grow quite significantly as intended features to add in the feature (add, delete, and edit) are added. It is both the actual logic to handle these requests and responses that can be rather extensive and specific; it is likely to be ~300-500 lines or so of code. 2. Why not just finish implementing the Registry Editor? - There is a huge amount of features to add to make it complete. Besides my lack of time (especially with college coming up very soon), I also feel that others would be more suited for specific tasks. An example for a task that will need to be done would be the creation of nice graphics for the Registry Editor (ehm, @MaxXor) ;) 3. Why must we add more events and types of packets? - In Windows' Registry Editor, it is clearly quite a responsive design. Unfortunately, a responsive design often will require many events to be fired. 4. Am I going bye-bye? - Nope! I will very likely not be able to contribute much for a month or two, but I figured I would post my current progress so any others that wish to help implement this can make it happen. <hr /> <h1><b>MaxXor, <i>please</i> do not merge this into <code>master</code>!</h1> I wish to merge this into a new branch for the Registry Editor addition to be worked on more. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
kerem 2026-02-27 15:53:05 +03:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/Quasar#1097
No description provided.