如何在尝试启动新应用程序时使应用程序的第一个实例最大化

如何在尝试启动新应用程序时使应用程序的第一个实例最大化

问题描述:

我想将应用程序限制为仅在计算机上运行一个实例。到目前为止,我有这样的:如何在尝试启动新应用程序时使应用程序的第一个实例最大化

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