如何在尝试启动新应用程序时使应用程序的第一个实例最大化
问题描述:
我想将应用程序限制为仅在计算机上运行一个实例。到目前为止,我有这样的:如何在尝试启动新应用程序时使应用程序的第一个实例最大化
Mutex m = new Mutex(true, Name, out IsOwned);
if (!IsOwned)
{
string message = "There is already a copy of the application '" +
Name +
"' running. Please close that application before starting a new one.";
MessageBox.Show(message, "Error",
MessageBoxButtons.OK, MessageBoxIcon.Information);
Environment.Exit(0);
}
else
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
它退出,但有没有办法在这个关闭之前最大化第一个实例?
答
这不是您想要处理应用程序的多个实例的方式。公认的做法是切换到应用程序的运行实例。
这就是说,你可以很容易地创建一个派生自WindowsFormsApplicationBase(在Microsoft.VisualBasic命名空间中)的类。这个答案概述了你会怎么做,表明你想要一个单一实例,以及如何处理当您尝试并运行一个新的实例会发生什么:
Opening a "known file type" into running instance of custom app - .NET