using MediaBrowser.Controller; using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.Entities; using MediaBrowser.Model.Logging; using System; using System.Diagnostics; using System.Windows.Forms; namespace MediaBrowser.ServerApplication.Native { public static class BrowserLauncher { /// /// Opens the dashboard page. /// /// The page. /// The logged in user. /// The configuration manager. /// The app host. public static void OpenDashboardPage(string page, User loggedInUser, IServerConfigurationManager configurationManager, IServerApplicationHost appHost, ILogger logger) { var url = "http://localhost:" + configurationManager.Configuration.HttpServerPortNumber + "/" + appHost.WebApplicationName + "/dashboard/" + page; OpenUrl(url, logger); } /// /// Opens the URL. /// /// The URL. public static void OpenUrl(string url, ILogger logger) { var process = new Process { StartInfo = new ProcessStartInfo { FileName = url }, EnableRaisingEvents = true }; process.Exited += ProcessExited; try { process.Start(); } catch (Exception ex) { logger.ErrorException("Error launching url: {0}", ex, url); MessageBox.Show("There was an error launching your web browser. Please check your default browser settings."); } } /// /// Processes the exited. /// /// The sender. /// The instance containing the event data. private static void ProcessExited(object sender, EventArgs e) { ((Process)sender).Dispose(); } } }