InkCanvasForClass/Ink Canvas/App.xaml.cs

63 lines
2.1 KiB
C#
Raw Normal View History

2023-02-13 17:21:48 +08:00
using AutoUpdaterDotNET;
using Ink_Canvas.Helpers;
2021-12-16 01:21:41 +08:00
using System;
2020-11-22 11:05:12 +08:00
using System.Linq;
2021-12-16 01:21:41 +08:00
using System.Reflection;
2020-11-22 11:05:12 +08:00
using System.Windows;
namespace Ink_Canvas
{
/// <summary>
/// Interaction logic for App.xaml
/// </summary>
public partial class App : Application
{
2021-09-09 13:12:34 +08:00
System.Threading.Mutex mutex;
public static string[] StartArgs = null;
2023-05-17 21:51:13 +08:00
public static string RootPath = Environment.GetEnvironmentVariable("APPDATA") + "\\Ink Canvas\\Lyricify for Spotify\\";
2021-09-09 13:12:34 +08:00
public App()
{
this.Startup += new StartupEventHandler(App_Startup);
this.DispatcherUnhandledException += App_DispatcherUnhandledException;
}
private void App_DispatcherUnhandledException(object sender, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e)
{
Ink_Canvas.MainWindow.ShowNewMessage("抱歉,出现未预期的异常,可能导致 Ink Canvas 画板运行不稳定。\n建议保存墨迹后重启应用。", true);
LogHelper.NewLog(e.Exception.ToString());
e.Handled = true;
2021-09-09 13:12:34 +08:00
}
void App_Startup(object sender, StartupEventArgs e)
{
2023-05-17 21:51:13 +08:00
if (!StoreHelper.IsStoreApp) RootPath = AppDomain.CurrentDomain.SetupInformation.ApplicationBase;
2021-12-16 01:21:41 +08:00
LogHelper.NewLog(string.Format("Ink Canvas Starting (Version: {0})", Assembly.GetExecutingAssembly().GetName().Version.ToString()));
2021-09-09 13:12:34 +08:00
bool ret;
mutex = new System.Threading.Mutex(true, "Ink_Canvas", out ret);
if (!ret && !e.Args.Contains("-m")) //-m multiple
2021-09-09 13:12:34 +08:00
{
2021-12-16 01:21:41 +08:00
LogHelper.NewLog("Detected existing instance");
2021-09-09 13:12:34 +08:00
MessageBox.Show("已有一个程序实例正在运行");
2021-12-16 01:21:41 +08:00
LogHelper.NewLog("Ink Canvas automatically closed");
2021-09-09 13:12:34 +08:00
Environment.Exit(0);
}
2021-10-31 15:34:14 +08:00
StartArgs = e.Args;
2023-05-17 21:51:13 +08:00
if (!StoreHelper.IsStoreApp)
2023-02-13 17:21:48 +08:00
{
2023-05-17 21:51:13 +08:00
AutoUpdater.Start($"http://ink.wxriw.cn:1957/update");
AutoUpdater.ApplicationExitEvent += () =>
{
Environment.Exit(0);
};
}
2021-09-09 13:12:34 +08:00
}
2020-11-22 11:05:12 +08:00
}
}