App.xaml.cs 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. using LocalhostMES.Api.Hosting;
  2. using LocalhostMES.Core;
  3. using LocalhostMES.ViewModels;
  4. using LocalhostMES.ViewModels.Services;
  5. using LocalhostMES.ViewModels.Tabs;
  6. using LocalhostMES.Views;
  7. using Prism.Ioc;
  8. using Prism.Unity;
  9. using System;
  10. using System.Windows;
  11. namespace LocalhostMES
  12. {
  13. /// <summary>
  14. /// App.xaml 的交互逻辑
  15. /// </summary>
  16. public partial class App : PrismApplication
  17. {
  18. protected override Window CreateShell()
  19. {
  20. // 写入启动日志
  21. LogHelper.WriteLogInfo("程序启动");
  22. return Container.Resolve<MainView>();
  23. }
  24. protected override void RegisterTypes(IContainerRegistry containerRegistry)
  25. {
  26. containerRegistry.RegisterSingleton<IMesWorkspace, MesWorkspace>();
  27. containerRegistry.RegisterSingleton<WebApiService>();
  28. containerRegistry.Register<MainViewModel>();
  29. containerRegistry.Register<ApiTestViewModel>();
  30. containerRegistry.Register<WorkOrderManagementViewModel>();
  31. containerRegistry.Register<SnManagementViewModel>();
  32. containerRegistry.Register<KeyPartManagementViewModel>();
  33. containerRegistry.Register<PartCatalogViewModel>();
  34. containerRegistry.Register<BindRecordsViewModel>();
  35. containerRegistry.Register<ProcessRecordsViewModel>();
  36. containerRegistry.Register<TcpServerViewModel>();
  37. containerRegistry.Register<SystemSettingsViewModel>();
  38. }
  39. protected override void OnInitialized()
  40. {
  41. base.OnInitialized();
  42. ThemeManager.ApplyTheme(ThemeMode.Light);
  43. }
  44. private static System.Threading.Mutex mutex;
  45. protected override void OnStartup(StartupEventArgs e)
  46. {
  47. mutex = new System.Threading.Mutex(true, "LocalhostMes_CRNS");
  48. if ( mutex.WaitOne(0, false) )
  49. {
  50. base.OnStartup(e);
  51. }
  52. else
  53. {
  54. MessageBox.Show("程序已经在运行!", "提示");
  55. this.Shutdown();
  56. }
  57. }
  58. }
  59. }