// Выбор значка файла private void SelectIcon_Click(object sender, EventArgs e) { // Запуск выбора IconsExtractor ie = new IconsExtractor(al); if (ie.SelectedIconNumber >= 0) { selectedIconNumber = (uint)ie.SelectedIconNumber; selectedIconFile = ie.SelectedIconFile; FileIcon.Text = selectedIconFile + ", " + selectedIconNumber.ToString(); } }
// Применение изменений private void Apply_Click(object sender, EventArgs e) { // Контроль остальных параметров if (FileExtension.Text.Length * FileTypeName.Text.Length * FileIcon.Text.Length * FileApplication.Text.Length == 0) { MessageBox.Show(Localization.GetText("SomeFieldsAreEmpty", al), ProgramDescription.AssemblyTitle, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } // Контроль расширения FileExtension.Text = FileExtension.Text.ToLower().Replace(".", ""); char[] c = Path.GetInvalidFileNameChars(); for (int i = 0; i < c.Length; i++) { if (FileExtension.Text.Contains(c[i].ToString())) { MessageBox.Show(string.Format(Localization.GetText("UnsupportedCharacter", al), c[i].ToString()), ProgramDescription.AssemblyTitle, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } } uint a = IconsExtractor.GetIconsCount("s"); // Пробуем добавлять if (!rebm.AddEntry(new RegistryEntry("HKEY_CLASSES_ROOT\\." + FileExtension.Text, "", FileExtension.Text + "file")) || !rebm.AddEntry(new RegistryEntry("HKEY_CLASSES_ROOT\\" + FileExtension.Text + "file", "", FileTypeName.Text)) || !rebm.AddEntry(new RegistryEntry("HKEY_CLASSES_ROOT\\" + FileExtension.Text + "file\\DefaultIcon", "", selectedIconFile + "," + selectedIconNumber.ToString())) || !rebm.AddEntry(new RegistryEntry("HKEY_CLASSES_ROOT\\" + FileExtension.Text + "file\\shell", "", "open")) || !rebm.AddEntry(new RegistryEntry("HKEY_CLASSES_ROOT\\" + FileExtension.Text + "file\\shell\\open", "", Localization.GetText("OpenButton", al))) || !rebm.AddEntry(new RegistryEntry("HKEY_CLASSES_ROOT\\" + FileExtension.Text + "file\\shell\\open", "Icon", ((IconsExtractor.GetIconsCount(FileApplication.Text) == 0) ? selectedIconFile : FileApplication.Text) + ",0")) || !rebm.AddEntry(new RegistryEntry("HKEY_CLASSES_ROOT\\" + FileExtension.Text + "file\\shell\\open\\command", "", "\"" + FileApplication.Text + "\" \"%1\""))) { MessageBox.Show(Localization.GetText("ExtensionRegFailed", al), ProgramDescription.AssemblyTitle, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } confirmed = true; this.Close(); }
// Просмотр иконок private void FindIcon_Click(object sender, EventArgs e) { IconsExtractor ie = new IconsExtractor(al); }