diff --git a/Dotnet/AppApi/Cef/GameHandler.cs b/Dotnet/AppApi/Cef/GameHandler.cs index c6e74165..8d6d3a69 100644 --- a/Dotnet/AppApi/Cef/GameHandler.cs +++ b/Dotnet/AppApi/Cef/GameHandler.cs @@ -78,8 +78,7 @@ namespace VRCX FileName = $"{path}\\steam.exe", UseShellExecute = false, Arguments = $"-applaunch 438100 {arguments}" - }) - ?.Close(); + })?.Dispose(); return true; } } @@ -122,7 +121,7 @@ namespace VRCX FileName = path, UseShellExecute = false, Arguments = arguments - })?.Close(); + })?.Dispose(); return true; } } diff --git a/Dotnet/AppApi/Electron/GameHandler.cs b/Dotnet/AppApi/Electron/GameHandler.cs index 6e9c73dc..a212fa85 100644 --- a/Dotnet/AppApi/Electron/GameHandler.cs +++ b/Dotnet/AppApi/Electron/GameHandler.cs @@ -1,6 +1,7 @@ using System; using System.Diagnostics; using System.IO; +using System.Linq; namespace VRCX { @@ -16,58 +17,40 @@ namespace VRCX /// public override void CheckGameRunning() { - var isGameRunning = false; - var isSteamVRRunning = false; - - if (ProcessMonitor.Instance.IsProcessRunning("VRChat")) - { - isGameRunning = true; - } - if (ProcessMonitor.Instance.IsProcessRunning("vrserver")) - { - isSteamVRRunning = true; - } + ProcessMonitor.Instance.IsProcessRunning("VRChat"); + ProcessMonitor.Instance.IsProcessRunning("vrserver"); } public override bool IsGameRunning() { var processes = Process.GetProcessesByName("VRChat"); var isGameRunning = processes.Length > 0; - foreach (var process in processes) process.Dispose(); + return isGameRunning; } public override bool IsSteamVRRunning() { - // Check exact matches (fast - no full process scan needed) var processNames = new[] { "vrmonitor", "monado-service" }; foreach (var name in processNames) { var processes = Process.GetProcessesByName(name); var isSteamVRRunning = processes.Length > 0; - foreach (var process in processes) process.Dispose(); + if (isSteamVRRunning) return true; } // Check for wivrn-server (requires full scan) var allProcesses = Process.GetProcesses(); - var isRunning = false; - foreach (var process in allProcesses) - { - if (process.ProcessName.EndsWith("wivrn-server")) - { - isRunning = true; - break; - } - } - + var isRunning = allProcesses.Any(process => process.ProcessName.EndsWith("wivrn-server")); foreach (var process in allProcesses) process.Dispose(); + return isRunning; } @@ -76,9 +59,9 @@ namespace VRCX var processes = Process.GetProcessesByName("vrchat"); if (processes.Length == 1) processes[0].Kill(); - foreach (var process in processes) process.Dispose(); + return processes.Length; } @@ -86,13 +69,12 @@ namespace VRCX { try { - var process = Process.Start(new ProcessStartInfo + Process.Start(new ProcessStartInfo { FileName = "steam", Arguments = $"-applaunch 438100 {arguments}", UseShellExecute = false, - }); - process?.Dispose(); + })?.Dispose(); return true; // Steam accepted launch command (no exception thrown) } catch (Exception e)