private static void Run() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); IsSilentRun = CLI.IsCommandExist("silent", "s"); IsSandbox = CLI.IsCommandExist("sandbox"); if (!IsSandbox) { IsPortable = CLI.IsCommandExist("portable", "p"); if (IsPortable) { CustomPersonalPath = PortablePersonalPath; } else { CheckPersonalPathConfig(); } if (!Directory.Exists(PersonalPath)) { try { Directory.CreateDirectory(PersonalPath); } catch (Exception e) { MessageBox.Show(Resources.Program_Run_Unable_to_create_folder_ + string.Format(" \"{0}\"\r\n\r\n{1}", PersonalPath, e), "ShareX - " + Resources.Program_Run_Error, MessageBoxButtons.OK, MessageBoxIcon.Error); CustomPersonalPath = ""; } } } DebugHelper.WriteLine("{0} started", Title); DebugHelper.WriteLine("Operating system: " + Environment.OSVersion.VersionString); DebugHelper.WriteLine("Command line: " + Environment.CommandLine); DebugHelper.WriteLine("Personal path: " + PersonalPath); string gitHash = GetGitHash(); if (!string.IsNullOrEmpty(gitHash)) { DebugHelper.WriteLine("Git: https://github.com/ShareX/ShareX/tree/" + gitHash); } LoadProgramSettings(); UploaderSettingsResetEvent = new ManualResetEvent(false); HotkeySettingsResetEvent = new ManualResetEvent(false); TaskEx.Run(LoadSettings); LanguageHelper.ChangeLanguage(Settings.Language); DebugHelper.WriteLine("MainForm init started"); MainForm = new MainForm(); DebugHelper.WriteLine("MainForm init finished"); Application.Run(MainForm); if (WatchFolderManager != null) { WatchFolderManager.Dispose(); } SaveSettings(); BackupSettings(); DebugHelper.WriteLine("ShareX closing"); DebugHelper.Logger.SaveLog(LogsFilePath); }