var ProcessName = Assembly.GetExecutingAssembly().GetName().Name;//程序集名称
Process currentProcess = Process.GetCurrentProcess();//当运行的新进程
// 通过程序集名称判断是否有进程已运行
Process[] ps = Process.GetProcessesByName(ProcessName);
// 因为新进程名也是ProcessName,所以ps的Length大于1时才是有多个进程
if (ps.Length > 1)
{
foreach (var item in ps)
{
// 找到非当前新进程的 MessageConstruction 进程对象
if (item.Id != currentProcess.Id)
{
// 将未关闭的 MessageConstruction 窗口置于Windows顶层
T297AddinFramework.Common.Win32Util.SwitchToThisWindow(item.MainWindowHandle, true);
// 提示请先完成操作,然后关闭窗口
MessageDialog.Show("Please first complete the operation and close the window.");
// 彻底退出新进程
System.Environment.Exit(0);
}
}
}
避免程序重复启动(仅允许一个进程)
最新推荐文章于 2023-02-28 23:13:08 发布