App.xaml.cs 2.9 KB

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