diff --git a/source/Playnite.DesktopApp/ProgramEntry.cs b/source/Playnite.DesktopApp/ProgramEntry.cs index 366572cd8..b715fc6d2 100644 --- a/source/Playnite.DesktopApp/ProgramEntry.cs +++ b/source/Playnite.DesktopApp/ProgramEntry.cs @@ -77,7 +77,7 @@ namespace Playnite.DesktopApp } SplashScreen splash = null; - var procCount = Process.GetProcesses().Where(a => a.ProcessName.StartsWith("Playnite.")).Count(); + var procCount = Process.GetProcesses().Where(a => PlayniteApplication.IsProcessPlayniteProcess(a)).Count(); if (cmdLine.Start.IsNullOrEmpty() && !cmdLine.HideSplashScreen && procCount == 1) { splash = new SplashScreen("SplashScreen.png"); diff --git a/source/Playnite.FullscreenApp/ProgramEntry.cs b/source/Playnite.FullscreenApp/ProgramEntry.cs index 19acaf12e..2f4c9fab4 100644 --- a/source/Playnite.FullscreenApp/ProgramEntry.cs +++ b/source/Playnite.FullscreenApp/ProgramEntry.cs @@ -77,7 +77,7 @@ namespace Playnite.FullscreenApp } SplashScreen splash = null; - var procCount = Process.GetProcesses().Where(a => a.ProcessName.StartsWith("Playnite.")).Count(); + var procCount = Process.GetProcesses().Where(a => PlayniteApplication.IsProcessPlayniteProcess(a)).Count(); if (cmdLine.Start.IsNullOrEmpty() && !cmdLine.HideSplashScreen && procCount == 1) { splash = new SplashScreen("SplashScreen.png"); diff --git a/source/Playnite/App/PlayniteApplication.cs b/source/Playnite/App/PlayniteApplication.cs index b57e9dda1..6588bfd8c 100644 --- a/source/Playnite/App/PlayniteApplication.cs +++ b/source/Playnite/App/PlayniteApplication.cs @@ -921,7 +921,8 @@ namespace Playnite } else { - var existingProcess = Process.GetProcesses().First(a => a.ProcessName.StartsWith("Playnite.") && a.Id != curProcess.Id); + var existingProcess = Process.GetProcesses(). + First(a => IsProcessPlayniteProcess(a) && a.Id != curProcess.Id); if (existingProcess.ProcessName == curProcess.ProcessName) { client.InvokeCommand(CmdlineCommand.Focus, string.Empty); @@ -946,7 +947,7 @@ namespace Playnite } else { - var processes = Process.GetProcesses().Where(a => a.ProcessName.StartsWith("Playnite.")).ToList(); + var processes = Process.GetProcesses().Where(a => IsProcessPlayniteProcess(a)).ToList(); // In case multiple processes end up in this branch, // the process with highest process id gets to live. if (processes.Count > 1 && processes.Max(a => a.Id) != curProcess.Id) @@ -1630,13 +1631,13 @@ namespace Playnite private void WaitForOtherInstacesToExit(bool throwOnTimetout) { - if (Process.GetProcesses().Where(a => a.ProcessName.StartsWith("Playnite.")).Count() > 1) + if (Process.GetProcesses().Where(a => IsProcessPlayniteProcess(a)).Count() > 1) { logger.Info("Multiple Playnite instances detected, waiting for them to close."); for (int i = 0; i < 10; i++) { Thread.Sleep(500); - if (Process.GetProcesses().Where(a => a.ProcessName.StartsWith("Playnite.")).Count() == 1) + if (Process.GetProcesses().Where(a => IsProcessPlayniteProcess(a)).Count() == 1) { break; } @@ -1655,6 +1656,11 @@ namespace Playnite } } + public static bool IsProcessPlayniteProcess(Process process) + { + return process.ProcessName.StartsWith("Playnite.DesktopApp") || process.ProcessName.StartsWith("Playnite.FullscreenApp"); + } + public abstract PlayniteAPI GetApiInstance(ExtensionManifest pluginOwner); public abstract PlayniteAPI GetApiInstance(); }