tangxu
2024-06-18 22f8af0518d55f374dc385e86302949840627f11
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
 
using DevExpress.LookAndFeel;
using DevExpress.XtraEditors; 
using System;
using System.Windows.Forms;
 
namespace HStation.Desktop
{
    internal static class Program
    {
        [STAThread]
        static void Main()
        {
            using (var mutex = new System.Threading.Mutex(true, Application.ProductName, out bool createNew))
            {
                if (!createNew)
                {
                    MessageBox.Show("程序正在运行中...");
                    Application.Exit();
                    return;
                }
            }
 
 
 
            //处理未捕获的异常   
            Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
            //处理UI线程异常
            Application.ThreadException += Application_ThreadException;
            //处理非UI线程异常   
            AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
 
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
 
            System.Windows.Forms.Application.EnableVisualStyles();
            System.Windows.Forms.Application.SetCompatibleTextRenderingDefault(false);
 
            //字体
            var font = new System.Drawing.Font("微软雅黑", 10);
            DevExpress.XtraEditors.WindowsFormsSettings.DefaultFont = font;
            DevExpress.XtraEditors.WindowsFormsSettings.DefaultMenuFont = font;
            DevExpress.Utils.AppearanceObject.DefaultFont = font;
 
 
            //zh-Hans界面翻译
            System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("zh-Hans");
            System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("zh-Hans");
 
            //皮肤 
            DevExpress.LookAndFeel.UserLookAndFeel.Default.SetSkinStyle(SkinStyle.WXICompact);
 
            //初始化日志
            //LogHelper.Initial();
 
            //初始化雪花Id
            //SnowflakeIdHelper.InitIdGenerator(1);
 
 
            //var db = new MainDbContext();
            //db.InitTables();
 
            //登录
            //if (!LoginHelper.Login())
            //    return;
 
            var frmMain = new HStation.Desktop.GuideMain();
            Application.Run(frmMain);
        }
 
 
        ///<summary>
        ///  这就是我们要在发生未处理异常时处理的方法,我这是写出错详细信息到文本,如出错后弹出一个漂亮的出错提示窗体,给大家做个参考
        ///  做法很多,可以是把出错详细信息记录到文本、数据库,发送出错邮件到作者信箱或出错后重新初始化等等
        ///  这就是仁者见仁智者见智,大家自己做了。
        ///</summary>
        ///<param name="sender"> </param>
        ///<param name="e"> </param>
        private static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e)
        {
            var ex = e.Exception;
            //LogHelper.Error(ex.Message);
            XtraMessageBox.Show($"系统出现未知异常,请重启系统!\r\n{ex.Message}");
        }
 
        private static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
        {
            var ex = e.ExceptionObject as Exception;
            //LogHelper.Error(ex.Message);
            XtraMessageBox.Show($"系统出现未知异常,请重启系统!\r\n{ex?.Message}");
        }
    }
}