private void Button_Click_CleanStatWindow(object sender, RoutedEventArgs e) { TextBoxStatistics.Clear(); }
// Конец секции импорта private void Button_Click_GetHex(object sender, RoutedEventArgs e) { // Переменная для проверки целостности int result_md5 = -1; // Начало проверки существования .dll файла if (File.Exists("lhe_32.dll") == true) { TextBoxConsole.AppendText("Файл lhe_32.dll существует. "); TextBoxConsole.AppendText("Начата проверка...\n"); result_md5 = CheckMD5(); } else { TextBoxConsole.AppendText("Файла lhe_32.dll не существует.\n"); } // Конец проверки // Вызов функции из .dll (если .dll нет, то будет вызван обработчик исключения try { if (FilePathIn == "") { TextBoxConsole.AppendText("Путь до файла ПУСТ - проверьте путь.\n"); } else { if (result_md5 == 0) { PathToFile(FilePathIn, Environment.CurrentDirectory + "//TempHexFile.txt"); DateTime DateOfStartStat, DateOfEndStat; DateOfStartStat = DateTime.Now; int SizeFile = SizeOfFile(); TextBoxStatistics.AppendText("Размер файла: " + SizeFile + " байт.\n"); double NumOfAllLine = (SizeFile / 16.0); TextBoxStatistics.AppendText("Всего строк: " + Math.Ceiling(NumOfAllLine) + ".\n"); double NumOfFullLine = (SizeFile / 16.0); TextBoxStatistics.AppendText("Количество полных строк: " + Math.Floor(NumOfFullLine) + ".\n"); // Если байт 1700, а чтение 1600, то будет 1,0625: Ceiling = 2, Floor = 1 double StageForProgressBar = (SizeFile / 3200.0); TextBoxStatistics.AppendText("Делений у прогресс бара: " + Math.Ceiling(StageForProgressBar) + ".\n"); LHEProgressBar.Minimum = 0; LHEProgressBar.Maximum = Math.Ceiling(StageForProgressBar); DateOfEndStat = DateTime.Now; TimeSpan TimeInWork = DateOfEndStat - DateOfStartStat; TextBoxConsole.AppendText("На анализ потрачено: " + (TimeInWork.TotalSeconds) + " секунд.\n"); MessageBoxResult result = MessageBox.Show( this, "Начать операцию извлечения кода?", "Получение кода", MessageBoxButton.YesNo, MessageBoxImage.Question); if (result == MessageBoxResult.Yes) { TextBoxConsole.AppendText("Разрешение на операцию извлечения - дано.\n"); //******************************* ДОЛГАЯ ОПЕРАЦИЯ *******************************\\ StopOperationButton.IsEnabled = true; DateOfStartGetHex = DateTime.Now; backgroundWorker.RunWorkerAsync(); //******************************* ДОЛГАЯ ОПЕРАЦИЯ *******************************\\ } else { TextBoxConsole.AppendText("Разрешение на операцию извлечения НЕ дано.\n"); } } else { TextBoxConsole.AppendText("Необходимо вновь получить lhe_32.dll - нарушена его целостность."); MessageBox.Show(this, "Файл .dll повреждён", "Критическая ошибка", MessageBoxButton.OK, MessageBoxImage.Error); } } } catch (DllNotFoundException text) { MessageBox.Show(text.Message); } // Конец секции вызова и проверки }