private void extractAudioToolStripMenuItem_Click(object sender, EventArgs e) { if (QuickPlay.HasQuickPlay) { //Allow only one extractor to run but don't make it a modal window var f = Tools.GetForm <frmAudioExtract>(); if (f == null) { f = new frmAudioExtract(); f.Show(); FeatureReport.Used(FeatureReport.Feature.ExtractAudio); } else { f.Show(); f.BringToFront(); f.Focus(); } } else { extractAudioToolStripMenuItem.Enabled = false; var T = new Thread(delegate() { QuickPlay.ResetQuickPlay(); QuickPlay.CheckQuickPlay(); }); T.IsBackground = true; T.Start(); } }
static int Main(string[] args) { Log.Write("Application version {0} start", Tools.CurrentVersion); FeatureReport.Id = Guid.Empty; //Set "NOFORM" to better experiment #if !NOFORM #if !DEBUG var ReleaseModeErrorHandler = new ErrorHandler(); ReleaseModeErrorHandler.ErrorReport += delegate(Exception ex, ErrorHandlerEventArgs e) { Log.Write("Sending error report"); var Msg = ErrorHandler.generateReport(ex); var MainForm = Tools.GetForm <frmMain>(); byte[] CurrentFile = null; if (MainForm != null && MainForm.HasFileOpen) { var F = MainForm.CurrentFile; using (var MS = new MemoryStream()) { F.Export(MS); MS.Position = 0; CurrentFile = Compression.CompressData(MS.ToArray()); } } //Send report e.Handled = ReleaseModeErrorHandler.UploadReport(Msg, CurrentFile == null ? new byte[0] : CurrentFile); }; #endif //Perform update automatically if it's pending if (!DEBUG && args.Length == 0 && File.Exists(UpdateHandler.DefaultUpdateExecutable)) { if (UpdateHandler.PerformUpdate()) { Log.Write("Application version {0} end (Update success)", Tools.CurrentVersion); Log.Close(); return(RET.SUCCESS); } } //Only run main application part if no update was performed if (DEBUG || !UpdateHandler.Update()) { #if DEBUG FeatureReport.Used(FeatureReport.Feature.DebugMode); #endif int Status = HandleArguments(args); if (Status == RET.UI) { //Remove console handle to not block any scripts. Tools.FreeConsole(); QuickPlay.CheckQuickPlay(); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new frmMain(args.FirstOrDefault())); } else if (DEBUG) { return(Exit(RET.SUCCESS)); } //Send Report FeatureReport.Report(); } Log.Write("Application version {0} end", Tools.CurrentVersion); Log.Close(); return(RET.SUCCESS); #else Log.Write("Running in test mode"); //Allocate console or the Console.ReadKey() will crash Tools.AllocConsole(); Console.Error.WriteLine("Arguments: {0}", string.Join("\r\n", args)); Test(); return(Exit(RET.SUCCESS)); #endif }