2009-02-13 75 views
1

我想將應用程序限制爲僅在計算機上運行一個實例。到目前爲止,我有這樣的:如何在嘗試啓動新應用程序時使應用程序的第一個實例最大化

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()); 
} 

它退出,但有沒有辦法在這個關閉之前最大化第一個實例?

回答

2

這不是您想要處理應用程序的多個實例的方式。公認的做法是切換到應用程序的運行實例。

這就是說,你可以很容易地創建一個派生自WindowsFormsApplicationBase(在Microsoft.VisualBasic命名空間中)的類。這個答案概述了你會怎麼做,表明你想要一個單一實例,以及如何處理當您嘗試並運行一個新的實例會發生什麼:

Opening a "known file type" into running instance of custom app - .NET

相關問題