Program.cs 2.0 KB
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace CodeSplice
{
    static class Program
    {
        static System.Threading.Mutex _mutex;

        /// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        [STAThread]
        static void Main()
        {
            //Asa.Dog dog = new Asa.Dog();
            //bool rtn = dog.Login(null, 1);  //特征ID固定为1
            //if (!rtn)
            //{
            //    MessageBox.Show(dog.ErrInfo);
            //    return;
            //}

            //获取程序集Guid作为唯一标识
            Attribute guid_attr = Attribute.GetCustomAttribute(System.Reflection.Assembly.GetExecutingAssembly(), typeof(System.Runtime.InteropServices.GuidAttribute));
            string guid = ((System.Runtime.InteropServices.GuidAttribute)guid_attr).Value;
            _mutex = new System.Threading.Mutex(true, guid, out bool createdNew);

            if (!createdNew)    //发现重复进程
            {
                MessageBox.Show("Program already running", "", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            else
            {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                if (!Directory.Exists(Common.LOG_DIR)) Directory.CreateDirectory(Common.LOG_DIR);
                if (!Directory.Exists(Common.LABEL_DIR)) Directory.CreateDirectory(Common.LABEL_DIR);
                if (!Directory.Exists(Common.MATERIAL_DIR)) Directory.CreateDirectory(Common.MATERIAL_DIR);
                if (!Directory.Exists(Common.LANGUAGE_DIR)) Directory.CreateDirectory(Common.LANGUAGE_DIR);
                if (!Directory.Exists(Common.HISTORY_DIR)) Directory.CreateDirectory(Common.HISTORY_DIR);
                Application.Run(new FrmMain());
            }
            _mutex.ReleaseMutex();
        }
    }
}