4

Итак, я уже некоторое время читаю и гуглю это, и я не могу понять, что происходит не так. Я пытаюсь создать расширение .int в моем реестре, чтобы я мог добавить к нему ключ ShellNew, и, таким образом, он должен позволить мне выполнить простой щелчок правой кнопкой мыши> новый> метод создания файла. Поэтому я пошел к HKEY_CLASSES_ROOT и создал ключ с именем .int.
Затем я создал ключ с именем intfile со значком по умолчанию и установил для его строки (по умолчанию) значение "Файл локализации". Затем в ключе .int я установил (по умолчанию) intfile и создал тип контента, который я установил равным text /text. Затем я создал новый ключ с именем ShellNew, и в этом ключе я установил FileName на путь в WINDOWS /ShellNew, где находился мой файл .int по умолчанию. Однако, когда я щелкаю правой кнопкой мыши и перехожу на новый, он не показывает Новый файл локализации. Я где-то пропускаю запись в реестре? Любая помощь будет принята с благодарностью, я не могу понять, почему это не работает, так как я добавил ShellNew ко многим клавишам раньше и всегда работал безупречно. Я впервые создаю совершенно новое расширение файла, но я прочитал другие существующие расширения файлов и не могу понять, почему они не работают. Ты снова заранее.

Изменить: разъяснение того, что я настроил точно.

intfile:
     (Default) REG_SZ "Localization File"
intfile>shell>open>command:
     (Default) REG_SZ "C:\Program Files\Notepad++\notepad++.exe"
.int: 
     (Default) REG_SZ "intfile"
     ContentType REG_SZ "plain/text"
     Percieved Type REG_SZ "text"
.int>ShellNew:
     (Default) REG_SZ "null"
     FileName REG_SZ "C:\WINDOWS\ShellNew\New Int.int"

1 ответ1

1

Это потому, что вы не правильно зарегистрировали тип файла. Ну, технически, вы не правильно зарегистрировали свое "заявление".

http://msdn.microsoft.com/en-us/library/cc144148(v=vs.85).aspx#fa_register_type\

Вы правильно зарегистрировали .int. .int говорит называть intfile . Однако intfile - это то место, куда вы помещаете приложение, которое обрабатывает файл! Поэтому Шеллекс изучает intfile и все, что он находит, - это строка в поле по умолчанию. Так что операция не удалась.

Поскольку вам нужна строка там, вы должны предоставить глаголу по умолчанию глагол для выполнения. Под intfile создайте команду shell\open\. Введите полный путь к вашему приложению, например, «% ProgramFiles%\Notepad++\Notepad++. Exe» «% 1».

FileName - это полный путь к файлу, который вы хотите сделать копию, поэтому вам нужно "% windir%, а не WINDOWS.

Редактировать Я не могу поверить, что я потворствую этому методу. , ,

Но я не знаю ни одного способа добавить это без написания программы. , ,

Hacktastic

edit2:

Хорошо, мы идем.

Ключ .int имеет значение по Default(SZ) = intfile и тип контекста (SZ) = plain.text . Под ключом .int вас будет подраздел Shellnew . Значение по умолчанию должно быть пустым. Создайте новую пустую строку (Reg_SZ) и укажите значение в имени файла: `C:\windows\ShellNew\NewLocalization File '.

В intfile создайте новый файл локализации по умолчанию New Localization File.

Обратите внимание на отсутствие двойных кавычек. Теперь для intfile нужны следующие подразделы: shell , сделайте его Default = open . Затем сделайте раздел open под оболочкой .

Теперь выполните command subkey под открытым.

Укажите полный путь к программе под строкой с кавычками. то есть "c:\Program Files (x86)\Notepad++\notepad++.exe" "%1" . Обратите внимание, что есть двойные кавычки.

Изменить:3

Похоже, ОП столкнулся с неизвестной проблемой и решил ее таким образом.

Хм ок разобрался! Вы были правы в основном, а я был прав немного. Проблема была в том, что я открыл файл один раз и установил программу по умолчанию notepad++ во всплывающем диалоге. Это создало ключ с именем int_auto_file. Я просмотрел реестр, занял много времени и удалил все ссылки на расширение .int. После этого я восстановил их, и теперь это работает отлично.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .