c#WinForm 程序单实例运行并打开前一个实例(Mutex+API)

要实现程序单实例运行并打开前一个实例有许多方法,如大多数网上的Process 方法。但,如果程序从IDE(像vs)运行,然后再双击bin/debug里的程序,运行了2个实例了。本人用的是Mutex来控制程序单实例运行,API操作前实例的窗体句柄来实现的。.Net里有Form的Handle属性来获取窗体句柄。

 

本人在vs2008中写的,效果:可行;最大最小化时双击会变为普通状态。

如有更好的方法,请大家拿出来研究。代码如下:

 

创建程序设置:

 

名称:w    类型:Int64 范围:用户 值:0

 

在Program.cs里:

 

using System.Threading;

using System.Runtime.InteropServices;

using System.Diagnostics;

using System.Reflection;

using WindowsFormsApplication1.Properties;   //加入项目设置

 

 

 

static class Program

    {

        #region Win32 API 函数

 

        //该函数设置由不同线程产生的窗口的显示状态;

        //如果函数原来可见,返回值为非零;如果函数原来被隐藏,返回值为零。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值