Initial commit: SpdUp Windows Gaming Booster v1.0.0
- .NET 8 WPF app with full MVVM architecture - One-click boost: CPU, RAM, GPU, network, services, timer resolution - Real-time system monitor (LibreHardwareMonitor) - Auto game detection (30+ games) - RAM optimizer with kernel-level cleanup - Network optimizer (TCP registry tweaks) - Service manager, process manager, shader cache cleaner - Desktop widget overlay - Debug log viewer - Custom dark gaming theme with trans pride colors - 84 unit tests (xUnit) - Inno Setup installer script - Landing page website
This commit is contained in:
@@ -0,0 +1,96 @@
|
||||
using System.Diagnostics;
|
||||
using System.ServiceProcess;
|
||||
using SpdUp.Core;
|
||||
using SpdUp.Models;
|
||||
|
||||
namespace SpdUp.Services;
|
||||
|
||||
/// <summary>
|
||||
/// Service management: list, stop, start Windows services.
|
||||
/// </summary>
|
||||
public static class ServiceManagementService
|
||||
{
|
||||
/// <summary>
|
||||
/// Non-critical services commonly stopped for gaming.
|
||||
/// </summary>
|
||||
public static readonly Dictionary<string, string> KnownNonCriticalServices = new()
|
||||
{
|
||||
["SysMain"] = "Superfetch / SysMain – pre-loads apps into RAM",
|
||||
["WSearch"] = "Windows Search indexing",
|
||||
["DiagTrack"] = "Connected User Experiences and Telemetry",
|
||||
["TabletInputService"] = "Touch Keyboard and Handwriting Panel",
|
||||
["MapsBroker"] = "Downloaded Maps Manager",
|
||||
["PcaSvc"] = "Program Compatibility Assistant",
|
||||
["wisvc"] = "Windows Insider Service",
|
||||
["WbioSrvc"] = "Windows Biometric Service",
|
||||
["Fax"] = "Fax service",
|
||||
["XblAuthManager"] = "Xbox Live Auth Manager",
|
||||
["XblGameSave"] = "Xbox Live Game Save",
|
||||
["XboxNetApiSvc"] = "Xbox Live Networking Service",
|
||||
};
|
||||
|
||||
public static List<ServiceEntry> GetServiceList(IEnumerable<string> serviceNames)
|
||||
{
|
||||
var entries = new List<ServiceEntry>();
|
||||
|
||||
foreach (var name in serviceNames)
|
||||
{
|
||||
try
|
||||
{
|
||||
using var sc = new ServiceController(name);
|
||||
entries.Add(new ServiceEntry
|
||||
{
|
||||
ServiceName = sc.ServiceName,
|
||||
DisplayName = sc.DisplayName,
|
||||
Status = sc.Status.ToString(),
|
||||
Description = KnownNonCriticalServices.GetValueOrDefault(name, "")
|
||||
});
|
||||
}
|
||||
catch
|
||||
{
|
||||
entries.Add(new ServiceEntry
|
||||
{
|
||||
ServiceName = name,
|
||||
DisplayName = name,
|
||||
Status = "NotFound"
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
return entries;
|
||||
}
|
||||
|
||||
public static bool StopService(string serviceName)
|
||||
{
|
||||
try
|
||||
{
|
||||
using var sc = new ServiceController(serviceName);
|
||||
if (sc.Status == ServiceControllerStatus.Running)
|
||||
{
|
||||
sc.Stop();
|
||||
sc.WaitForStatus(ServiceControllerStatus.Stopped, TimeSpan.FromSeconds(15));
|
||||
Logger.Info($"Stopped service: {serviceName}");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
catch (Exception ex) { Logger.Error($"Failed to stop {serviceName}", ex); }
|
||||
return false;
|
||||
}
|
||||
|
||||
public static bool StartService(string serviceName)
|
||||
{
|
||||
try
|
||||
{
|
||||
using var sc = new ServiceController(serviceName);
|
||||
if (sc.Status == ServiceControllerStatus.Stopped)
|
||||
{
|
||||
sc.Start();
|
||||
sc.WaitForStatus(ServiceControllerStatus.Running, TimeSpan.FromSeconds(15));
|
||||
Logger.Info($"Started service: {serviceName}");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
catch (Exception ex) { Logger.Error($"Failed to start {serviceName}", ex); }
|
||||
return false;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user