private void ExecutablePathBox_TextChanged(object sender, EventArgs e) { // Если путь к файлу .exe не пустой if (!string.IsNullOrWhiteSpace(this.ExecutablePathBox.Text)) { // Выводим версию .Net файла this.VersionNet.Text = $"NetFramework: {CheckFramework.Version(this.ExecutablePathBox.Text)}"; // Если строка совпадает с N/A if (this.VersionNet.Text.Contains("N/A")) { // Выводим ошибку пользователю MusicPlay.Inizialize(Resources.Error_Build); this.ExecutablePathBox.Clear(); this.StatusMessage.Location = new Point(7, 273); ControlActive.CheckMessage(StatusMessage, "Supports only .Net binary files", Color.LightBlue, 3000); this.AddingLibrary.Enabled = false; // Блокируем кнопку добавления библиотек .dll } else { // разблокируем элементы кнопок this.AddingLibrary.Enabled = true; // Добавление библиотек .dll this.CompileBuild.Enabled = true; // Перепаковка ( слияние библиотек ) } } else { // Очищяем версию .Net Framework this.VersionNet.Text = ""; // Блокируем элементы кнопко this.AddingLibrary.Enabled = false; // Добавление библиотек .dll this.CompileBuild.Enabled = false; // Перепаковка ( слияние библиотек ) } }
private void LibraryPathBox_DragDrop(object sender, DragEventArgs e) { // Если путь к файлу .exe не пустой if (!string.IsNullOrWhiteSpace(this.ExecutablePathBox.Text)) { // Принимаем файл(ы) string[] files = (string[])e.Data.GetData(DataFormats.FileDrop); // Проходимся в цикле foreach (string file in files) { // Проверяем расширения файла if (files[0].EndsWith(".dll")) { // Получаем версию NetFramework бибиотеки string FrameVerDllInfo = CheckFramework.Version(files[0]); // Получаем версию NetFramework бинарника string FrameVerExeInfo = CheckFramework.Version(this.ExecutablePathBox.Text); // Если версия не совпадает с N/A if (!FrameVerDllInfo.Contains("N/A")) { // Если нет совпадений файлов из ListBox'a if (!this.LibraryPathBox.Items.Contains(file)) { // Если версии .dll совпадает с .exe if (FrameVerExeInfo.Equals(FrameVerDllInfo, StringComparison.OrdinalIgnoreCase)) { this.LibraryPathBox.Items.Add(file); // Добавляем файл в список ListBox this.TextPathLibrary.Text = $"Path to .dll file(s): {LibraryPathBox.Items.Count}"; // Добавляем счётчик } else { StatusMessage.Location = new Point(7, 273); ControlActive.CheckMessage(StatusMessage, ".NetFramework version does not match file", Color.LightBlue, 3000); } } else { StatusMessage.Location = new Point(7, 273); ControlActive.CheckMessage(StatusMessage, "Such file is already in the list", Color.LightBlue, 3000); } } else { this.StatusMessage.Location = new Point(7, 273); ControlActive.CheckMessage(StatusMessage, "Supports only .Net library files", Color.LightBlue, 3000); } } else { StatusMessage.Location = new Point(7, 273); ControlActive.CheckMessage(StatusMessage, "Supports only .dll files", Color.LightBlue, 3000); } } } else { StatusMessage.Location = new Point(7, 273); ControlActive.CheckMessage(StatusMessage, "Fill in the first input field .exe path", Color.LightBlue, 3000); } }
private void AddingLibrary_Click(object sender, EventArgs e) { // Убираем фокус с кнопки NativeMethods.SetFocus(IntPtr.Zero); this.LogoText.Focus(); using var ofd = new OpenFileDialog { Title = "Select the .dll file(s) you want to add", Filter = "Library file|*.dll", AutoUpgradeEnabled = true, CheckFileExists = true, Multiselect = true, RestoreDirectory = true }; if (ofd.ShowDialog() == DialogResult.OK) { foreach (string multi in ofd.FileNames) { string FrameVerDllInfo = CheckFramework.Version(multi); // Получаем версию NetFramework бибиотеки string FrameVerExeInfo = CheckFramework.Version(this.ExecutablePathBox.Text); // Получаем версию NetFramework бинарника if (!FrameVerDllInfo.Contains("N/A")) // Если нет совпадений с N/A { if (!this.LibraryPathBox.Items.Contains(multi)) // Если нет совпадающий файлов в списке { if (FrameVerExeInfo.Equals(FrameVerDllInfo, StringComparison.OrdinalIgnoreCase)) // Если версии .dll совпадает с .exe { this.LibraryPathBox.Items.Add(multi); // Добавляем файл в ListBox this.TextPathLibrary.Text = $"Path to .dll file(s): {LibraryPathBox.Items.Count}"; // Добавляем счётчик } else { StatusMessage.Location = new Point(7, 273); ControlActive.CheckMessage(StatusMessage, ".NetFramework version does not match .exe file", Color.LightBlue, 3000); } } else { StatusMessage.Location = new Point(7, 273); ControlActive.CheckMessage(StatusMessage, "Such file is already in the list", Color.LightBlue, 3000); } } else { this.StatusMessage.Location = new Point(7, 273); ControlActive.CheckMessage(StatusMessage, "Supports only .Net library files", Color.LightBlue, 3000); } } } else { StatusMessage.Location = new Point(7, 273); ControlActive.CheckMessage(StatusMessage, "No file selected", Color.LightBlue, 3000); } }