Fix Electron checking if game is running

This commit is contained in:
Natsumi
2025-10-31 01:51:26 +11:00
parent f434c83b0c
commit 27464ca65f
4 changed files with 25 additions and 5 deletions

View File

@@ -53,9 +53,11 @@ namespace VRCX
public override int QuitGame()
{
var processes = Process.GetProcessesByName("vrchat");
var processes = Process.GetProcessesByName("VRChat");
if (processes.Length == 1)
processes[0].Kill();
foreach (var process in processes)
process.Dispose();
return processes.Length;
}

View File

@@ -288,7 +288,12 @@ namespace VRCX
try
{
var processName = Path.GetFileNameWithoutExtension(filePath);
return Process.GetProcessesByName(processName).Length != 0;
var processes = Process.GetProcessesByName(processName);
var isProcessRunning = processes.Length != 0;
foreach (var process in processes)
process.Dispose();
return isProcessRunning;
}
catch (Exception ex)
{

View File

@@ -120,7 +120,14 @@ namespace VRCX
return false;
if (ensureCheck && process.Process == null)
return Process.GetProcessesByName(processName).FirstOrDefault() != null;
{
var processes = Process.GetProcessesByName(processName);
var isProcessRunning = processes.Length > 0;
foreach (var proc in processes)
proc.Dispose();
return isProcessRunning;
}
return process.IsRunning;

View File

@@ -121,6 +121,7 @@ namespace VRCX
private static bool IsDuplicateProcessRunning(VrcxLaunchArguments launchArguments)
{
var processes = Process.GetProcessesByName("VRCX");
var isDuplicateProcessRunning = false;
foreach (var process in processes)
{
if (process.Id == Environment.ProcessId)
@@ -145,10 +146,15 @@ namespace VRCX
var processArguments = ParseArgs(commandLine.Split(' '));
if (processArguments.ConfigDirectory == launchArguments.ConfigDirectory)
return true;
{
isDuplicateProcessRunning = true;
break;
}
}
foreach (var process in processes)
process.Dispose();
return false;
return isDuplicateProcessRunning;
}
private static void IPCToMain()