WPF实现单例运行 - 唯一实例运行

使用互斥量保持wpf程序唯一实例运行public void CheckSingleInstanceAndStartMainApp(){ bool singleInstance = false; System.Threading.Mutex singleInstanceMutex = new System.Threading.Mutex(tru
摘要由CSDN通过智能技术生成

使用互斥量保持wpf程序唯一实例运行

public void CheckSingleInstanceAndStartMainApp(){
             bool singleInstance = false;
             System.Threading.Mutex singleInstanceMutex = new System.Threading.Mutex(true, "singleInstance", out singleInstance);
             if (!singleInstance) {
                 //程序已经运行直接return
                 return ;
             }

             //启动程序
             (new MainApp).Start();

             //保持互斥量不被垃圾回收器回收
             GC.KeepAlive(singleInstance); 
        }

在程序已经运行情况下,如何激活程序并置顶,通过API: SetForegroundWindow + ShowWindow + FindWindow

 public void ActiveAndShowToFront(string titleName) {
            //s1:通过WAPi:FindWindow获取运行实例的句柄
            //或者事先保存实例,传递过来
            IntPtr hWndPtr = FindWindow(null, titleName);

            //s2;显示窗体
            ShowWindow(hWndPtr);

        
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值