2021-07-21 11:15:51 +08:00
|
|
|
|
using GeekDesk.Constant;
|
2022-01-09 17:33:49 +08:00
|
|
|
|
using GeekDesk.Util;
|
2021-07-21 11:15:51 +08:00
|
|
|
|
using Microsoft.Win32;
|
2021-07-20 17:30:12 +08:00
|
|
|
|
using System;
|
|
|
|
|
|
using System.IO;
|
2022-01-09 17:33:49 +08:00
|
|
|
|
using System.Text;
|
2021-07-20 17:30:12 +08:00
|
|
|
|
using System.Windows;
|
2021-07-28 13:39:48 +08:00
|
|
|
|
using System.Windows.Media.Animation;
|
2021-07-20 17:30:12 +08:00
|
|
|
|
using System.Windows.Threading;
|
2021-04-12 13:46:05 +08:00
|
|
|
|
|
|
|
|
|
|
namespace GeekDesk
|
|
|
|
|
|
{
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// App.xaml 的交互逻辑
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public partial class App : Application
|
|
|
|
|
|
{
|
2021-07-20 21:12:18 +08:00
|
|
|
|
|
2021-07-20 17:30:12 +08:00
|
|
|
|
System.Threading.Mutex mutex;
|
2021-07-20 21:12:18 +08:00
|
|
|
|
|
|
|
|
|
|
public App()
|
|
|
|
|
|
{
|
|
|
|
|
|
this.Startup += new StartupEventHandler(App_Startup);
|
2022-01-09 17:33:49 +08:00
|
|
|
|
Application.Current.DispatcherUnhandledException += Current_DispatcherUnhandledException;
|
|
|
|
|
|
AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
|
2021-07-20 21:12:18 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
2021-07-20 17:30:12 +08:00
|
|
|
|
private void App_Startup(object sender, StartupEventArgs e)
|
|
|
|
|
|
{
|
2021-07-20 21:12:18 +08:00
|
|
|
|
|
2021-08-19 13:59:47 +08:00
|
|
|
|
mutex = new System.Threading.Mutex(true, Constants.MY_NAME, out bool ret);
|
2021-07-20 17:30:12 +08:00
|
|
|
|
if (!ret)
|
|
|
|
|
|
{
|
2021-08-19 13:59:47 +08:00
|
|
|
|
System.Threading.Thread.Sleep(2000);
|
|
|
|
|
|
mutex = new System.Threading.Mutex(true, Constants.MY_NAME, out ret);
|
|
|
|
|
|
if (!ret)
|
|
|
|
|
|
{
|
|
|
|
|
|
Environment.Exit(0);
|
|
|
|
|
|
}
|
2021-07-20 17:30:12 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2022-01-09 17:33:49 +08:00
|
|
|
|
void Current_DispatcherUnhandledException(object sender, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
e.Handled = true;//使用这一行代码告诉运行时,该异常被处理了,不再作为UnhandledException抛出了。
|
|
|
|
|
|
LogUtil.WriteErrorLog(e, "未捕获异常!");
|
|
|
|
|
|
if (Constants.DEV)
|
|
|
|
|
|
{
|
|
|
|
|
|
MessageBox.Show("GeekDesk遇到一个问题, 不用担心, 这不影响其它操作!");
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2021-07-20 17:30:12 +08:00
|
|
|
|
|
2022-01-09 17:33:49 +08:00
|
|
|
|
void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
LogUtil.WriteErrorLog(e, "严重异常!");
|
|
|
|
|
|
MessageBox.Show("GeekDesk遇到未知问题崩溃!");
|
|
|
|
|
|
}
|
2021-07-20 17:30:12 +08:00
|
|
|
|
|
|
|
|
|
|
|
2022-01-09 17:33:49 +08:00
|
|
|
|
}
|
2021-07-20 17:30:12 +08:00
|
|
|
|
|
2021-04-12 13:46:05 +08:00
|
|
|
|
}
|