From eb7ac7acf7710c6d46430c0d20f64a9fb4f6c896 Mon Sep 17 00:00:00 2001 From: MechaDragonX Date: Sat, 28 Mar 2020 15:59:41 -0700 Subject: [PATCH] Fix lack of error handling when process isn't open --- Program.cs | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/Program.cs b/Program.cs index 0ce36a4..7e517e9 100644 --- a/Program.cs +++ b/Program.cs @@ -21,7 +21,10 @@ class Program private static void Main(string[] args) { Initialize(); - while(true) + if (Process.GetProcesses().Where(x => x.ProcessName.StartsWith("DOSBox")).Count() == 0) + return; + + while (true) { Update(); if(Process.GetProcesses().Where(x => x.ProcessName.StartsWith("DOSBox")).Count() == 0) @@ -89,9 +92,16 @@ private static void Deinitialize() private static void OnUpdate() { - if(Process.GetProcesses().Where(x => x.ProcessName.StartsWith("DOSBox")).ToList()[0].MainWindowTitle != windowTitle) + Process process; + try { - dos = Process.GetProcesses().Where(x => x.ProcessName.StartsWith("DOSBox")).ToList()[0]; + process = Process.GetProcesses().Where(x => x.ProcessName.StartsWith("DOSBox")).ToList()[0]; + } + catch(IndexOutOfRangeException) { return; } + + if(process.MainWindowTitle != windowTitle) + { + dos = process; windowTitle = dos.MainWindowTitle; setNewPresence(); } @@ -107,7 +117,12 @@ private static void setNewPresence() i--; } } - string status = new StringBuilder($"v{titleParts[0].Split(' ')[1]}").AppendFormat(", {0}, {1}", titleParts[1], titleParts[2]).ToString(); + string status; + try + { + status = new StringBuilder($"v{titleParts[0].Split(' ')[1]}").AppendFormat(", {0}, {1}", titleParts[1], titleParts[2]).ToString(); + } + catch(IndexOutOfRangeException) { return; } client.SetPresence(new RichPresence {