AcTools.Processes.TrickyStarter.Run C# (CSharp) Method

Run() public method

public Run ( ) : void
return void
        public void Run() {
            if (!Process.GetProcessesByName("steam").Any()) {
                TryToRunSteam();
                throw new Exception("Running Steam is required");
            }

            _acLauncher = FileUtils.GetAcLauncherFilename(AcRoot);
            _acLauncherBackup = _acLauncher.ApartFromLast(".exe", StringComparison.OrdinalIgnoreCase) + "_backup_ts.exe";

            if (File.Exists(_acLauncherBackup) && new FileInfo(_acLauncher).Length > ApproximateAcstarterSize) {
                File.Move(_acLauncherBackup, _acLauncherBackup.ApartFromLast(".exe", StringComparison.OrdinalIgnoreCase) + "_" + DateTime.Now.Ticks + ".exe");
            }

            if (!File.Exists(_acLauncherBackup)) {
                File.Move(_acLauncher, _acLauncherBackup);
            }

            if (!File.Exists(_acLauncher)) {
                File.WriteAllBytes(_acLauncher, Resources.AcStarter);
            }

            _launcherProcess = Process.Start(new ProcessStartInfo {
                WorkingDirectory = AcRoot,
                FileName = Path.GetFileName(_acLauncher) ?? "",
                Arguments = $"--first-stage {AcsName}"
            });
        }