C# 函数检查程序是否正在运行
// 该C#代码使用.net8 WinForm
using System.Diagnostics;
namespace OnlyOne
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e) // 加载窗口执行
{
// Process1();
// Process2();
}
// 判断当前进程 1
static void Process1()
{
//获取欲启动进程名
string strProcessName = System.Diagnostics.Process.GetCurrentProcess().ProcessName;
////获取版本号
//CommonData.VersionNumber = Application.ProductVersion;
//检查进程是否已经启动,已经启动则显示报错信息退出程序。
if (System.Diagnostics.Process.GetProcessesByName(strProcessName).Length > 1)
{
MessageBox.Show("程序已经运行!", "消息", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
Application.Exit();
//Application.ExitThread();
return;
}
}
// 判断当前进程 2
static void Process2()
{
var selfname = System.AppDomain.CurrentDomain.FriendlyName; // 获取当前exe名称.
Process[] processes = Process.GetProcessesByName(selfname); // 获取进程组是否有该进程, 返回进程数组
Form1 form = new Form1();
if (processes.Length == 0)
{
form.textBox1.Text = "not runing";
}
else
{
form.textBox1.Text = "runing";
}
}
static void OnlyOne() // 推荐使用该方法
{
bool Exist; // 定义一个bool变量, 判断程序是否已在运行
Mutex mutex = new Mutex(true, "仅一次", out Exist); // 创建一个Mutex互斥对象
if (Exist)
{
mutex.ReleaseMutex(); // 如果没有运行
}
else
{
MessageBox.Show("仅能运行一次", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
Close();
}
}
}
}
文章编写or整理的内容由作者完成,引用or参考会给出原文链接。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)