Files
BSO-Launcher/Program.cs
T
MrMahoandClaude Opus 5.5 07da29ab94 Sprache Deutsch/Englisch
Umschalter in den Einstellungen und auf der Anmeldeseite; Meldungen des Launchers (Lang.cs)
und der Website (Accept-Language) in der gewaehlten Sprache.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 19:44:07 +01:00

46 lines
1.8 KiB
C#

namespace BSO.Launcher;
static class Program
{
[STAThread]
static int Main(string[] args)
{
ApplicationConfiguration.Initialize();
Lang.Set(Settings.Load().Language);
// Deinstallieren (aus "Apps & Features")
if (args.Contains("--uninstall"))
{
Installer.Uninstall(args.Contains("--quiet"));
return 0;
}
// Wie Discord: die heruntergeladene .exe installiert sich selbst und startet dann die installierte Kopie.
// Ist schon dieselbe oder eine neuere Version installiert, wird einfach diese geoeffnet. --portable = ohne Installation.
if (!Installer.RunningInstalled && !args.Contains("--portable"))
{
if (Installer.NeedsInstall()) Application.Run(new InstallForm());
else Installer.StartInstalled();
return 0;
}
// Nur ein Launcher gleichzeitig
using var single = new Mutex(true, "BSO-Launcher-Single", out bool first);
// Nach einem Selbst-Update: die alte Version beendet sich gerade - bis zu 20 s auf sie warten
if (!first && args.Contains(SelfUpdate.AfterUpdateArg))
{
try { first = single.WaitOne(TimeSpan.FromSeconds(20)); }
catch (AbandonedMutexException) { first = true; } // alte Version wurde hart beendet - Sperre gehoert jetzt uns
}
if (!first)
{
MessageBox.Show(Lang.T("Der BSO Launcher laeuft schon."), Installer.AppName, MessageBoxButtons.OK, MessageBoxIcon.Information);
return 0;
}
SelfUpdate.CleanupOldVersion();
if (Installer.RunningInstalled) Installer.Register(); // Version in "Apps & Features" nach einem Selbst-Update
Application.Run(new MainForm());
return 0;
}
}