void Begin() { var parameter = new ConfuserParameter(); parameter.Project = host.Project.ToCrProj(); parameter.Logger.BeginAssembly += Logger_BeginAssembly; parameter.Logger.EndAssembly += Logger_EndAssembly; parameter.Logger.Phase += Logger_Phase; parameter.Logger.Log += Logger_Log; parameter.Logger.Progress += Logger_Progress; parameter.Logger.Fault += Logger_Fault; parameter.Logger.End += Logger_End; cr = new Confuser.Core.Confuser(); thread = cr.ConfuseAsync(parameter); host.EnabledNavigation = false; btn.IsEnabled = true; p = 0; Action check = null; check = new Action(() => { progress.Value = p; if (p != -1) Dispatcher.BeginInvoke(check, System.Windows.Threading.DispatcherPriority.Background); }); check(); }
void Begin() { var parameter = new ConfuserParameter(); parameter.Project = host.Project.ToCrProj(); parameter.Logger.BeginAssembly += Logger_BeginAssembly; parameter.Logger.EndAssembly += Logger_EndAssembly; parameter.Logger.Phase += Logger_Phase; parameter.Logger.Log += Logger_Log; parameter.Logger.Progress += Logger_Progress; parameter.Logger.Fault += Logger_Fault; parameter.Logger.End += Logger_End; cr = new Confuser.Core.Confuser(); thread = cr.ConfuseAsync(parameter); host.EnabledNavigation = false; btn.IsEnabled = true; p = 0; Action check = null; check = new Action(() => { progress.Value = p; if (p != -1) { Dispatcher.BeginInvoke(check, System.Windows.Threading.DispatcherPriority.Background); } }); check(); }
private void DoConfuse(object sender, RoutedEventArgs e) { if ((string)doConfuse.Content == "Cancel") { confuser.Abort(); return; } var param = new Core.ConfuserParameter(); param.SourceAssembly = path; param.DestinationPath = output.Text; param.ReferencesPath = System.IO.Path.GetDirectoryName(path); param.Confusions = ldConfusions.Values.ToArray(); param.Packers = ldPackers.Values.ToArray(); param.DefaultPreset = Core.Preset.None; param.StrongNameKeyPath = sn.Text; param.Marker = marker; param.Logger.BeginPhase += new EventHandler <Core.PhaseEventArgs>((sender1, e1) => { this.Dispatcher.Invoke(new Action(delegate { Monitor.Enter(this); Border phase = Helper.FindChild <Border>(progress, "phase" + e1.Phase); log = Helper.FindChild <TextBox>(phase, null); if (pBar != null) { pBar.Value = 1; } pBar = Helper.FindChild <ProgressBar>(phase, null); if (pBar != null) { pBar.Value = 0; } Storyboard sb = this.Resources["showPhase"] as Storyboard; Storyboard.SetTarget(sb.Children[0], phase); Storyboard.SetTarget(sb.Children[1], phase); sb.Completed += delegate { Monitor.Exit(this); progress.ScrollTo(e1.Phase / 5.0); }; sb.Begin(); }), null); lock (this) { } Thread.Sleep(150); }); param.Logger.Logging += new EventHandler <Core.LogEventArgs>((sender1, e1) => { this.Dispatcher.Invoke(new Action(delegate { if (log != null) { log.AppendText(e1.Message + Environment.NewLine); log.ScrollToEnd(); } }), null); }); param.Logger.Progressing += new EventHandler <Core.ProgressEventArgs>((sender1, e1) => { value = e1.Progress; }); param.Logger.Fault += new EventHandler <Core.ExceptionEventArgs>((sender1, e1) => { this.Dispatcher.Invoke(new Action(delegate { Monitor.Enter(this); Border result = Helper.FindChild <Border>(progress, "result"); Helper.FindChild <UIElement>(result, "resultFail").Visibility = Visibility.Visible; Helper.FindChild <UIElement>(result, "resultOk").Visibility = Visibility.Hidden; Helper.FindChild <TextBox>(result, null).Text = string.Format("Failed!\nException details : \n" + e1.Exception.ToString()); Storyboard sb = this.Resources["showPhase"] as Storyboard; Storyboard.SetTarget(sb, result); sb.Completed += delegate { Monitor.Exit(this); progress.ScrollToEnd(); }; sb.Begin(); value = -1; doConfuse.Content = "Confuse!"; CONFUSED(); }), null); lock (this) { } }); param.Logger.End += new EventHandler <Core.LogEventArgs>((sender1, e1) => { this.Dispatcher.Invoke(new Action(delegate { Monitor.Enter(this); if (pBar != null) { pBar.Value = 1; } Border result = Helper.FindChild <Border>(progress, "result"); Helper.FindChild <UIElement>(result, "resultOk").Visibility = Visibility.Visible; Helper.FindChild <UIElement>(result, "resultFail").Visibility = Visibility.Hidden; Helper.FindChild <TextBox>(result, null).Text = string.Format("Succeeded!\n" + e1.Message.ToString()); Storyboard sb = this.Resources["showPhase"] as Storyboard; Storyboard.SetTarget(sb, result); sb.Completed += delegate { Monitor.Exit(this); progress.ScrollToEnd(); }; sb.Begin(); value = -1; doConfuse.Content = "Confuse!"; CONFUSED(); }), null); lock (this) { } }); var cr = new Core.Confuser(); progress.ScrollToBeginning(); (this.Resources["resetProgress"] as Storyboard).Begin(); Helper.FindChild <TextBox>(phase1, null).Text = ""; Helper.FindChild <TextBox>(phase2, null).Text = ""; Helper.FindChild <TextBox>(phase3, null).Text = ""; Helper.FindChild <TextBox>(phase4, null).Text = ""; (this.Resources["showProgress"] as Storyboard).Begin(); Dispatcher.Invoke(new Action(delegate { Thread.Sleep(100); }), DispatcherPriority.Render); MoniterValue(); CONFUSING(); doConfuse.Content = "Cancel"; confuser = cr.ConfuseAsync(param); }