public static void Main(string[] args) { //forms stuff Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(true); //reset config on launch with -resetConfig flag foreach (string arg in args) { if (arg.Equals("-resetConfig", StringComparison.OrdinalIgnoreCase)) { new AppConfig().ToFile(ConfigFile); } } do { //reset restart flag ShouldRestartApp = false; //(re)load config LoadConfig(); //kill cast server if (Config.KillStrayCastServer) { TryKillCastServer(); } //enable / disable autostart Win32Util.RegisterAutostart(Config.Strings.AppName, LaunchCommand, Config.ShouldAppAutostart); //start app AppInstance = new CastApp(); Application.Run(AppInstance); } while (ShouldRestartApp); //kill cast server when exiting TryKillCastServer(); }