using System;
using System.Diagnostics;
using System.Runtime.InteropServices;
using System.Windows.Forms;
namespace xxx
{
static class Program
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
//获取当前进程
Process current = Process.GetCurrentProcess();
//获取所有与当前进程名称相同的进程
Process[] processArr = Process.GetProcessesByName(current.ProcessName);
foreach (Process process in processArr)
{
//和当前进程路径相同但ID不同
if (process.MainModule.FileName == current.MainModule.FileName && process.Id != current.Id)
{
//显示已打开的程序窗口,可搜索ShowWindowAsync的更多参数
ShowWindowAsync(process.MainWindowHandle, 1);
//将窗口放置最前端
SetForegroundWindow(process.MainWindowHandle);
//退出当前程序/进程
return;
}
}
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
[DllImport("User32.dll")]
private static extern bool ShowWindowAsync(IntPtr hWnd, int cmdShow);
[DllImport("User32.dll")]
private static extern bool SetForegroundWindow(IntPtr hWnd);
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?