using LeatherApp.Utils; using Sunny.UI; using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; using System.Reflection; using System.Threading.Tasks; using System.Windows.Forms; namespace LeatherApp { internal static class Program { /// /// 应用程序的主入口点。 /// [STAThread] static void Main(string[] sp) { //byte[] buff = File.ReadAllBytes(@"D:\AZTCode\HBH\证书\测试环境SSL\国际根证书\国际根证书.cer"); //string base64=Convert.ToBase64String(buff); Process instance = RunningInstance(); if (instance == null) { Application.ThreadException += Application_ThreadException; Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new FrmMain()); } else { MessageBox.Show("当前程序已经运行!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, 0); } } //不允许有两个程序同时启动 public static Process RunningInstance() { Process current = Process.GetCurrentProcess(); Process[] processes = Process.GetProcessesByName(current.ProcessName); //遍历正在有相同名字运行的例程 foreach (Process process in processes) { //忽略现有的例程 if (process.Id != current.Id) { //确保例程从EXE文件运行 if (Assembly.GetExecutingAssembly().Location.Replace("/", "\\") == current.MainModule.FileName) { //返回另一个例程实例 return process; } } } //没有其它的例程,返回Null return null; } static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e) { Exception ex = e.Exception; using (StreamWriter sw = new StreamWriter(Directory.GetCurrentDirectory() + "\\ErrorLog.txt", true)) { sw.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); sw.WriteLine("Global捕获到未处理异常:" + ex.GetType().ToString()); sw.WriteLine("异常信息:" + ex.Message); sw.WriteLine("异常堆栈:" + ex.StackTrace); sw.WriteLine(); } MessageBox.Show(string.Format("捕获到未处理异常:{0}\r\n异常信息:{1}\r\n异常堆栈:{2}", ex.GetType(), ex.Message, ex.StackTrace)); } } }