Всем привет! Сейчас я покажу еще один вариант запрета запуска второй копии приложения, с использованием языка C#.
Для этого в проекте создайте фаил .cs в него поместите следующий код.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
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.
Таким образом, теперь более одной копии приложения не возможно запустить.