Exemplo n.º 1
0
 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();
     }
 }
Exemplo n.º 2
0
        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
        }