private void BackupUserCtrl_Load(object sender, EventArgs e) { m_task.m_steamDir = Settings.SteamDir; m_task.m_backupDir = Settings.BackupDir; m_task.m_jobList.Clear(); Cursor = Cursors.WaitCursor; EnableControl(false); var worker = new BackgroundWorker(); worker.WorkerReportsProgress = true; worker.DoWork += (o, args) => m_task.Scan(worker); worker.ProgressChanged += (o, args) => { workingProgBar.Value = args.ProgressPercentage; workingLbl.Text = "Working: " + m_task.m_jobList.Count + "/" + m_task.m_jobList.Capacity + " Apps Analysed"; }; worker.RunWorkerCompleted += (o, args) => { m_task.m_jobList.Sort(); chkList.DataSource = m_task.m_jobList; chkList.DisplayMember = "m_name"; UpdCheckBoxList(); cBoxUnlockThreads.Checked = Settings.Lzma2UnlockThreads; if (Settings.UseLzma2) { tbarThread.Maximum = cBoxUnlockThreads.Checked ? 8 : Math.Min(8, Environment.ProcessorCount); tbarThread.Value = Settings.Lzma2Threads; m_task.m_threadCount = Settings.Lzma2Threads; cBoxUnlockThreads.Visible = true; } else { tbarThread.Maximum = 4; tbarThread.Value = Settings.ThreadsBup; m_task.m_threadCount = Settings.ThreadsBup; cBoxUnlockThreads.Visible = false; } cBoxLzma2.Checked = Settings.UseLzma2; ThreadText(); tbarComp.Value = Settings.Compression; m_task.m_compLevel = Settings.Compression; CompresionText(); RamUsage(); Cursor = Cursors.Arrow; EnableControl(true); }; worker.RunWorkerAsync(); }
private static void Setup() { if (Utilities.IsSteamRunning()) { Console.WriteLine(@""); Console.WriteLine(@"Steam is running!"); Console.WriteLine(@"Please exit Steam before backing up."); Console.WriteLine(@"To continue, exit Steam and restart this Application."); Console.WriteLine(@"Do not start Steam until the backup process is finished."); Console.WriteLine(@""); Console.WriteLine(@"Press enter to exit."); Console.ReadLine(); Environment.Exit(2); } if (string.IsNullOrEmpty(m_steamDir)) { try { m_steamDir = Utilities.GetSteamDirectory(); } catch (Exception ex) { Console.WriteLine(ex.Message); Environment.Exit(1); } } if (!Utilities.IsValidSteamFolder(m_steamDir)) { Console.WriteLine(string.Format(Resources.NotValidSteamDirectory, m_steamDir)); Environment.Exit(3); } // create folders if needed if (!Utilities.SetupBackupDirectory(m_outDir)) { Console.WriteLine(string.Format(Resources.UnwritableDirectory, m_outDir)); Environment.Exit(4); } m_consoleWidth = Console.BufferWidth; m_statusLine = Console.CursorTop; m_instanceLines.Add(m_statusLine + 4); m_registeredInstances.Add(-1); if (!m_useLzma2) { for (var i = 1; i < m_numThreads; i++) { m_instanceLines.Add(m_statusLine + 4 + (i * 3)); m_registeredInstances.Add(-1); } } Settings.BackupDir = m_outDir; m_bupTask = new BackupTask { m_steamDir = m_steamDir, m_backupDir = m_outDir }; Console.SetCursorPosition(0, m_statusLine); Console.WriteLine(Resources.Scanning.PadRight(m_consoleWidth)); m_bupTask.m_jobList.Clear(); m_bupTask.Scan(); m_bupTask.m_useLzma2 = m_useLzma2; m_bupTask.m_compLevel = m_compLevel; if (m_useLzma2) { m_bupTask.m_lzma2Threads = m_numThreads; } else { m_bupTask.m_threadCount = m_numThreads; } if (m_updateBackup) { m_bupTask.SetEnableUpd(true); } else if (m_updateLibrary) { m_bupTask.SetEnableUpd(false); } else { m_bupTask.SetEnableAll(); m_bupTask.m_deleteAll = m_deleteBackup; } m_bupTask.Start(); }