using LocalhostMES.Api.Hosting;
using LocalhostMES.Core;
using LocalhostMES.ViewModels;
using LocalhostMES.ViewModels.Services;
using LocalhostMES.ViewModels.Tabs;
using LocalhostMES.Views;
using Prism.Ioc;
using Prism.Unity;
using System;
using System.Diagnostics;
using System.Windows;
namespace LocalhostMES
{
///
/// App.xaml 的交互逻辑
///
public partial class App : PrismApplication
{
protected override Window CreateShell()
{
// 写入启动日志
LogHelper.WriteLogInfo("程序启动");
return Container.Resolve();
}
protected override void RegisterTypes(IContainerRegistry containerRegistry)
{
containerRegistry.RegisterSingleton();
containerRegistry.RegisterSingleton();
containerRegistry.Register();
containerRegistry.Register();
containerRegistry.Register();
containerRegistry.Register();
containerRegistry.Register();
containerRegistry.Register();
containerRegistry.Register();
containerRegistry.Register();
containerRegistry.Register();
containerRegistry.Register();
}
protected override void OnInitialized()
{
base.OnInitialized();
ThemeManager.ApplyTheme(ThemeMode.Light);
AutoRunSystemSettings();
}
private void AutoRunSystemSettings()
{
try
{
var systemSettingsViewModel = Container.Resolve();
systemSettingsViewModel.StartService();
systemSettingsViewModel.SaveSettings();
Container.Resolve().StartService();
bool isRunning = Process.GetProcessesByName("TeamAAS-VM").Length > 0;
if ( !isRunning )
{
Process.Start(@"D:\HANS LASER\TeamAAS-VP.exe");
}
}
catch ( Exception ex )
{
MessageBox.Show($"启动自动初始化系统设置失败: {ex.Message}");
}
}
private static System.Threading.Mutex mutex;
protected override void OnStartup(StartupEventArgs e)
{
mutex = new System.Threading.Mutex(true, "LocalhostMes_CRNS");
if ( mutex.WaitOne(0, false) )
{
base.OnStartup(e);
}
else
{
MessageBox.Show("程序已经在运行!", "提示");
this.Shutdown();
}
}
}
}