/// <summary>
 /// Kills the optional EXE
 /// </summary>
 public virtual void KillMenu()
 {
     PipeServer = null;
     if (ShouldBeRunning)
     {
         ShouldBeRunning = false;
         if (!MenuGameExe.HasExited)
         {
             MenuGameExe.Kill();
         }
     }
 }
        /// <summary>
        /// creates an optional Exe Instance
        /// </summary>
        /// <param name="OptionalExe">based on OptionalExe</param>
        public GameMenu(object ServerController)
        {
            Controller                 = ServerController;
            this.MenuGameExe           = new Process();
            this.MenuGameExe.StartInfo = new ProcessStartInfo()
            {
                FileName = ThePath,
                //UseShellExecute = false,
                WorkingDirectory = Path.GetDirectoryName(ThePath)
            };

            PipeServer = new PipeRequestServer(ServerName);
            PipeServer.AddProccess(Controller);

            MenuGameExe.Exited += Exited;
            MenuGameExe.EnableRaisingEvents = true;
        }