App.xaml.cs 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. using MediaBrowser.Common.Kernel;
  2. using MediaBrowser.Common.UI;
  3. using MediaBrowser.Controller;
  4. using Microsoft.Shell;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Diagnostics;
  8. using System.Windows;
  9. namespace MediaBrowser.ServerApplication
  10. {
  11. /// <summary>
  12. /// Interaction logic for App.xaml
  13. /// </summary>
  14. public partial class App : BaseApplication, IApplication
  15. {
  16. [STAThread]
  17. public static void Main()
  18. {
  19. RunApplication<App>("MediaBrowserServer");
  20. }
  21. protected override void OnSecondInstanceLaunched(IList<string> args)
  22. {
  23. base.OnSecondInstanceLaunched(args);
  24. OpenDashboard();
  25. InitializeComponent();
  26. }
  27. public static void OpenDashboard()
  28. {
  29. OpenUrl("http://localhost:" + Kernel.Instance.Configuration.HttpServerPortNumber +
  30. "/mediabrowser/dashboard/index.html");
  31. }
  32. public static void OpenUrl(string url)
  33. {
  34. var process = new Process
  35. {
  36. StartInfo = new ProcessStartInfo
  37. {
  38. FileName = url
  39. },
  40. EnableRaisingEvents = true
  41. };
  42. process.Exited += ProcessExited;
  43. process.Start();
  44. }
  45. static void ProcessExited(object sender, EventArgs e)
  46. {
  47. (sender as Process).Dispose();
  48. }
  49. protected override IKernel InstantiateKernel()
  50. {
  51. return new Kernel();
  52. }
  53. protected override Window InstantiateMainWindow()
  54. {
  55. return new MainWindow();
  56. }
  57. }
  58. }