App.xaml.cs 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  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. Container.Resolve<SystemSettingsViewModel>().StartService();
  54. Process.Start(@"D:\HANS LASER\TeamAAS-VP.exe");
  55. }
  56. catch (Exception ex)
  57. {
  58. MessageBox.Show( $"启动自动初始化系统设置失败: {ex.Message}");
  59. }
  60. }
  61. private static System.Threading.Mutex mutex;
  62. protected override void OnStartup(StartupEventArgs e)
  63. {
  64. mutex = new System.Threading.Mutex(true, "LocalhostMes_CRNS");
  65. if ( mutex.WaitOne(0, false) )
  66. {
  67. base.OnStartup(e);
  68. }
  69. else
  70. {
  71. MessageBox.Show("程序已经在运行!", "提示");
  72. this.Shutdown();
  73. }
  74. }
  75. }
  76. }