≡
  • 网络编程
  • 数据库
  • CMS技巧
  • 软件编程
  • PHP笔记
  • JavaScript
  • MySQL
 
位置:首页 > 软件编程 > C#

C#全局异常跟只能开启一次程序,打开第二次将把该程序显示最前的简单示例

人气:487 时间:2020-12-27

这篇文章主要为大家详细介绍了C#全局异常跟只能开启一次程序,打开第二次将把该程序显示最前的简单示例,具有一定的参考价值,可以用来参考一下。

感兴趣C#全局异常跟只能开启一次程序,打开第二次将把该程序显示最前的简单示例的小伙伴,下面一起跟随四海网的小编罗X来看看吧。<br>
static class SingleInstanceApplication
    {
        [DllImport("kernel32.dll", SetLastError = true)]
        public static extern IntPtr CreateMutex(IntPtr Attr, bool Own, string Name);

        [DllImport("kernel32.dll", SetLastError = true)]
        public static extern bool ReleaseMutex(IntPtr hMutex);

        [DllImport("user32.dll")]
        public static extern void SwitchToThisWindow(IntPtr hWnd, bool fAltTab);

        const long ERROR_ALREADY_EXISTS = 183;
        public static void Run(Form frm)
        {
            string name = "SENSE_C2000";
            IntPtr mutexHandle = CreateMutex(IntPtr.Zero, true, name);
            long error = Marshal.GetLastWin32Error();

            string pName = "SENSE-C2000";//要启动的进程名称,可以在任务管理器里查看,一般是不带.exe后缀的;  
            Process[] temp = Process.GetProcessesByName(pName);//在所有已启动的进程中查找需要的进程;  
            if (error != ERROR_ALREADY_EXISTS)
            {
                Application.Run(frm);
            }
            else
            {
                SwitchToThisWindow(temp[0].MainWindowHandle, true); // 激活,显示在最前  
                //MessageBox.Show("您的程序已经在运行了,不能同时运行两个实例!", "The Application has been running!");
                LogHlep.WriteLog("重复登录");
            }
            ReleaseMutex(mutexHandle);
        }
    }
    static class Program
    {
        /// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        [STAThread]
        static void Main(string[] args = null)
        {
        //全局异常捕捉
            Application.ThreadException += Application_ThreadException; //UI线程异常
            AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; //多线程异常
            //args = new string[2];
        //args[0] = "10001";
            //if (args == null)
            //{
            //    args = new string[2];
            //    args[0] = "18231132";
            //}
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            //Application.Run(new FrmMain(args));
            SingleInstanceApplication.Run(new FrmMain(args));
        }
       //UI线程异常
        static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e)
        {
            //WinformException.FrmBugReport.ShowBug(e.Exception);
            LogHlep.WriteLog("异常详细信息:" + e.Exception.Message + "
跟踪:" + e.Exception.StackTrace);
        }

        //多线程异常
        static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
        {
            //WinformException.FrmBugReport.ShowBug((Exception)e.ExceptionObject);
            Exception ex = (Exception)e.ExceptionObject;
            LogHlep.WriteLog("异常详细信息:" + ex.Message + "
跟踪:" + ex.StackTrace);
        }
 

本文来自:http://www.q1010.com/194/16376-0.html

注:关于C#全局异常跟只能开启一次程序,打开第二次将把该程序显示最前的简单示例的内容就先介绍到这里,更多相关文章的可以留意四海网的其他信息。

关键词:异常

 

您可能感兴趣的文章

 
 
  • SQL Server异常捕获的简单示例
  • SQL Server函数或存储过程中抛出异常的实现方法
  • 解决php更新MySQL获取影响行数发生异常的问题
  • PHP原理之异常机制解析
  • PHP异常机制解析
  • MySQL存储过程异常处理示例代码分享
  • MySQL抛出Incorrect string value异常分析
  • MySQL异常处理浅析
  • mybaits非配置原因,导致SqlSession was not registered for synchronization异常解析
  • SQL Server自定义异常raiserror使用示例
 
上一篇:返回列表
下一篇:C#读取设置config.ini配置的简单示例
 
热门文章
  • C#相关TableLayoutPanel分页显示自定义控件的实现方法
  • C#分享HttpHelp 请求帮助类用法示例
  • C#实现ProcessHelp 进程类(启动,杀掉,查找)的简单示例
  • c# 判断网络类(获取mac) InternetCheck的简单示例
  • C#全局异常跟只能开启一次程序,打开第二次将把该程序显示最前的简单示例
  • C#文件帮助类(解压,压缩)的简单示例
  • C#读取设置config.ini配置的简单示例
  • C#分天记录日记类的简单示例
  • C#实现TimeExit 界面无点击定时退出类的简单示例
  • 利用c#实现LogHelp 日记分天记录,只记30天日记示例
 
  • 最新文章
    • C#实现TimeExit 界面无点击定时退出类的简单示例
    • C#实现ProcessHelp 进程类(启动,杀掉,查找)的简单示例
    • 利用c#实现LogHelp 日记分天记录,只记30天日记示例
    • c# 判断网络类(获取mac) InternetCheck的简单示例
    • C#文件帮助类(解压,压缩)的简单示例
    • C#分享HttpHelp 请求帮助类用法示例
    • C#相关TableLayoutPanel分页显示自定义控件的实现方法
    • C#分天记录日记类的简单示例
    • C#读取设置config.ini配置的简单示例
    • C#全局异常跟只能开启一次程序,打开第二次将把该程序显示最前的简单示例
 

四海网收集整理一些常用的php代码,JS代码,数据库mysql等技术文章。