WPF 启动唯一程序(项目,exe,实例)

protected override void OnStartup(StartupEventArgs e)
         {
             //当前运行WPF程序的进程实例
             Process process = Process.GetCurrentProcess();
             //遍历WPF程序的同名进程组
             foreach (Process p in Process.GetProcessesByName(process.ProcessName))
             {
                 //不是同一进程并且本进程启动时间最晚,则关闭较早进程
                 if (p.Id != process.Id && (p.StartTime - process.StartTime).TotalMilliseconds <= 0)
                 {
                     p.Kill();//这个地方用kill 而不用Shutdown();的原因是,Shutdown关闭程序在进程管理器里进程的释放有延迟不是马上关闭进程的
                     //Application.Current.Shutdown();
                     return;
                 }
    
    
             }
             base.OnStartup(e);
         }


知识共享许可协议
《WPF 启动唯一程序(项目,exe,实例)》常伟华 创作。
采用 知识共享 署名-相同方式共享 3.0 中国大陆 许可协议进行许可。
  • 多说评论
  • 签名
  • 新浪微博
  • 默认评论
  • Tab Header 5

0 条评论 / 点击此处发表评论

Tab Content 5

开发技术


开发平台和工具

sitemap     152.09ms