App.xaml.cs 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  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.Diagnostics;
  11. using System.Windows;
  12. namespace LocalhostMES
  13. {
  14. /// <summary>
  15. /// App.xaml 的交互逻辑
  16. /// </summary>
  17. public partial class App : PrismApplication
  18. {
  19. protected override Window CreateShell()
  20. {
  21. // 写入启动日志
  22. LogHelper.WriteLogInfo("程序启动");
  23. return Container.Resolve<MainView>();
  24. }
  25. protected override void RegisterTypes(IContainerRegistry containerRegistry)
  26. {
  27. containerRegistry.RegisterSingleton<IMesWorkspace, MesWorkspace>();
  28. containerRegistry.RegisterSingleton<WebApiService>();
  29. containerRegistry.Register<MainViewModel>();
  30. containerRegistry.Register<ApiTestViewModel>();
  31. containerRegistry.Register<WorkOrderManagementViewModel>();
  32. containerRegistry.Register<SnManagementViewModel>();
  33. containerRegistry.Register<KeyPartManagementViewModel>();
  34. containerRegistry.Register<PartCatalogViewModel>();
  35. containerRegistry.Register<BindRecordsViewModel>();
  36. containerRegistry.Register<ProcessRecordsViewModel>();
  37. containerRegistry.Register<TcpServerViewModel>();
  38. containerRegistry.Register<SystemSettingsViewModel>();
  39. }
  40. protected override void OnInitialized()
  41. {
  42. base.OnInitialized();
  43. ThemeManager.ApplyTheme(ThemeMode.Light);
  44. AutoRunSystemSettings();
  45. }
  46. private void AutoRunSystemSettings()
  47. {
  48. try
  49. {
  50. var systemSettingsViewModel = Container.Resolve<SystemSettingsViewModel>();
  51. systemSettingsViewModel.SaveSettings();
  52. systemSettingsViewModel.StartService();
  53. Process.Start(@"C:\Windows\System32\notepad.exe")
  54. }
  55. catch (Exception ex)
  56. {
  57. MessageBox.Show( $"启动自动初始化系统设置失败: {ex.Message}");
  58. }
  59. }
  60. private static System.Threading.Mutex mutex;
  61. protected override void OnStartup(StartupEventArgs e)
  62. {
  63. mutex = new System.Threading.Mutex(true, "LocalhostMes_CRNS");
  64. if ( mutex.WaitOne(0, false) )
  65. {
  66. base.OnStartup(e);
  67. }
  68. else
  69. {
  70. MessageBox.Show("程序已经在运行!", "提示");
  71. this.Shutdown();
  72. }
  73. }
  74. }
  75. }