Всем привет! Сейчас я покажу еще один вариант запрета запуска второй копии приложения, с использованием языка C#.
Для этого в проекте создайте фаил .cs в него поместите следующий код.
class StartClass
{
[STAThread]
static void Main(string[] args)
{
SingleInstanceApplicationWrapper startWrapper = new SingleInstanceApplicationWrapper();
startWrapper.Run(args);
}
}
public class SingleInstanceApplicationWrapper : Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase
{
public SingleInstanceApplicationWrapper()
{
// Включаем режим single-instance.
this.IsSingleInstance = true;
}
private Class1 _app;
protected override bool OnStartup(Microsoft.VisualBasic.ApplicationServices.StartupEventArgs eventArgs)
{
_app = new Class1();
_app.Run();
return false;
}
protected override void OnStartupNextInstance(Microsoft.VisualBasic.ApplicationServices.StartupNextInstanceEventArgs eventArgs)
{
Application.Current.MainWindow.Activate();
}
}
class Class1 : Application
{
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
// загружаем главное окно.
MainWindow window = new MainWindow();
this.MainWindow = window;
window.Show();
}
}
А свойствах проекта изменить автоматически запускаемый объект на StartClass.

Таким образом, теперь более одной копии приложения не возможно запустить.
