BrowserLauncher.cs 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. using MediaBrowser.Controller;
  2. using MediaBrowser.Controller.Configuration;
  3. using MediaBrowser.Controller.Entities;
  4. using MediaBrowser.Model.Logging;
  5. using System;
  6. using System.Diagnostics;
  7. using System.Windows.Forms;
  8. namespace MediaBrowser.ServerApplication.Native
  9. {
  10. public static class BrowserLauncher
  11. {
  12. /// <summary>
  13. /// Opens the dashboard page.
  14. /// </summary>
  15. /// <param name="page">The page.</param>
  16. /// <param name="loggedInUser">The logged in user.</param>
  17. /// <param name="configurationManager">The configuration manager.</param>
  18. /// <param name="appHost">The app host.</param>
  19. public static void OpenDashboardPage(string page, User loggedInUser, IServerConfigurationManager configurationManager, IServerApplicationHost appHost, ILogger logger)
  20. {
  21. var url = "http://localhost:" + configurationManager.Configuration.HttpServerPortNumber + "/" +
  22. appHost.WebApplicationName + "/dashboard/" + page;
  23. OpenUrl(url, logger);
  24. }
  25. /// <summary>
  26. /// Opens the URL.
  27. /// </summary>
  28. /// <param name="url">The URL.</param>
  29. public static void OpenUrl(string url, ILogger logger)
  30. {
  31. var process = new Process
  32. {
  33. StartInfo = new ProcessStartInfo
  34. {
  35. FileName = url
  36. },
  37. EnableRaisingEvents = true
  38. };
  39. process.Exited += ProcessExited;
  40. try
  41. {
  42. process.Start();
  43. }
  44. catch (Exception ex)
  45. {
  46. logger.ErrorException("Error launching url: {0}", ex, url);
  47. MessageBox.Show("There was an error launching your web browser. Please check your default browser settings.");
  48. }
  49. }
  50. /// <summary>
  51. /// Processes the exited.
  52. /// </summary>
  53. /// <param name="sender">The sender.</param>
  54. /// <param name="e">The <see cref="EventArgs" /> instance containing the event data.</param>
  55. private static void ProcessExited(object sender, EventArgs e)
  56. {
  57. ((Process)sender).Dispose();
  58. }
  59. }
  60. }