void pButtonUninstall_Click(object sender, RoutedEventArgs e) { string path = pTextBoxPath.Text; if (Directory.Exists(path)) { Patcher.RestoreOriginals(path); Debug.Show(Localization.Get("ui_uninstalldone"), Localization.Get("ui_uninstall")); } else { Debug.Error(Localization.Get("ui_wrongpath")); } }
void DoSetup(object arg) { try { Patcher.Install((string)arg, SetPercent); Dispatcher.Invoke(() => iButtonInstall.IsEnabled = true, DispatcherPriority.Render); } catch (Exception e) { if (!(e is TaskCanceledException || e is ThreadAbortException)) // in case of exit { MessageBox.Show(e.ToString(), Localization.Get("ui_error")); } } }
protected override bool GetAddresses(byte[] original, out int rawAddr, out int virtAddr) { // find equivalent position in original file int count = block.SeekCount(original, out rawAddr); virtAddr = rawAddr + 0x400000; if (count > 1) { Patcher.AddFailure(this.blockFile, EditFailure.MultipleBlocks); return(false); } else if (count == 0) { Patcher.AddFailure(this.blockFile, EditFailure.BlockNotFound); return(false); } return(true); }
void iButtonInstall_Click(object sender, RoutedEventArgs e) { string filePath = Patcher.GetOriginalBinary(pTextBoxPath.Text); if (filePath == null) { Debug.Error(Localization.Get("ui_wrongpath")); return; } iButtonInstall.Content = Localization.Get("ui_finished"); iButtonInstall.IsEnabled = false; iButtonInstall.Click -= iButtonInstall_Click; iButtonInstall.Click += (s, a) => this.Close(); pButtonSearch.IsEnabled = false; pTextBoxPath.IsReadOnly = true; setupThread = new Thread(DoSetup); this.Closed += (s, args) => setupThread.Abort(); setupThread.Start(filePath); }