在我们做winform程序时,有时需要对程序运行做一个限制,就比如像一般程序在运行时,就不允许再运行第二个同样的程序。这个功能其实不管对于系统,还是对于程序的安全性而言都是比较重要的。
那么,如何实现这个功能啦?我们都知道,在winform中,也有像bs模式中一样的全局文件:Program.cs,这个文件定义了程序的进入点。代码如下:
//判断当前线程是否只有一个
Process currprocess = Process.GetCurrentProcess();
string processName = currprocess.ProcessName;
Process[] proces = Process.GetProcessesByName(processName);
if (proces.Length > 1)
{
foreach (Process item in proces)
{
if (item.ProcessName == processName) //说明线程名称一样
{
if (item.Id != currprocess.Id) //线程名称一样,但是线程id不一样
{
MessageBox.Show("已经有一个程序在运行!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Stop);
currprocess.Kill();
return;
}
}
}
}
好了,在运行程序时,在运行一下,这是就会发现不能启动同样的程序,效果实现。