Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Автоматическая установка Windows 2000/XP/2003 (http://forum.oszone.net/forumdisplay.php?f=32)
-   -   Регистрация расширений файлов (файловые ассоциации) (http://forum.oszone.net/showthread.php?t=60289)

EvgenT 25-01-2006 09:46 396844

А есть ли утиль для регистрации расширений?
Например мне надо связать *.djvu с программой, которая располагается в C:\Program Files\DjVuReader\WinDjView.exe
Или mp3 с какой нить прогой?
А то ковыряния в реестре с вытаскиванием этих ключей уже достало.

Vadikan 25-01-2006 10:17 396860

В состав Windows входят утилиты при помощи которых можно:
  • Изменять связь между типом файла и исполняемой программой
    Код:

    ftype /?
  • Изменять связь между расширением и типом файла
    Код:

    assoc /?
В состав Resource Kit также входит associate.exe, которая может выполнять сразу обе операции http://www.ss64.com/nt/associate.html
Утилиту можно загрузить с этой страницы.

Tue 27-01-2006 12:24 397764

Vadikan, утилита associate.exe не делает того, что нужно. Вот я к примеру хочу чтобы файлы .wmv открывались Light Alloy. Соответственно пишу associate .WMV "c:\Program Files\LA\LA.exe". Пишет "Association ".WMV,c:\Program Files\LA\LA.exe" added". Дважды кликаю на .wmv файл - отркывается виндовым проигрывателем. Где ошибка ? А утилиты filetype, которая "входит в состав Windows" - у меня нет, есть утилита ftype.exe
P.S. WinXP Eng, SP2

EvgenT 27-01-2006 17:24 397919

Tue
Да, я это уже попробовал.
У меня открывается та прога, с которой ассоц. расширение. Но файл не добавляется в проигрыватель (ну или pdf открывал). Приложение запускается и всё. Ни чего не открывает.

Так что надо искать ещё что-то.

Vadikan 27-01-2006 22:27 398045

Tue
Есть такой момент с associate.exe. Я протестировал ее на текстoвом файле
Код:

associate .vad "C:\Program Files\Scite\scite.exe"
взял txt файл, сменил расширение на vad и открыл сразу в SciTe. Так что вообще-то она работает.

Конечно, ftype, это я по памяти писал.

Вообще, assoc нормально должна справляться с работой, учитывая, что приложение уже было установлено и зарегистрировало свои типы файлов.

Boa Soft 29-01-2006 16:14 398547

Цитата:

Вообще, assoc нормально должна справляться с работой, учитывая, что приложение уже было установлено и зарегистрировало свои типы файлов.
С медиафайлами посложнее. Там надо править дополнительные ключи, "обьясняя WMP", чтот это больше "не его" файл. Более подробно смогу посмотреть дома - у меня есть выжимка из темы на MSFN. Там же скрипт для ассоциации файлов. Тема не столь проста, как кажется.

Boa Soft 30-01-2006 01:19 398713

Коротко - с системно-поддерживаемыми файлами. (Ну, не знаю, как сказать иначе, вообщем, с теми файлами, которые изначально ассоциированы с системными примочками и которые она просто так не отдает) можно апоступить так:

Надо удалить параметр LegacyDisable

В ключе реестра:
HKCR\[FileType]\shell\[verb]

И так же параметр CLSID

В ключе реестра:
HKCR\[FileType]\shell\[verb]\ DropTarget


Где у нас

FileType - тип файла (не расширение!) например для *.AVI - AVIFile

Verb - действие, например open или play

Без этих действий у меня LA не хотел проигрывать нужные типы файлов (инсталлятор был перепакованный, свойский)

На счет остального - сейчас некогда собирать инфу. Если сейчас MSFN не в дауне, то можно посмотреть по этой ссылке:

http://www.msfn.org/board/index.php?act=ST&f=80&t=31407




Vadikan 30-01-2006 04:23 398734

Boa Soft
Эту ветку MSFN я видел, конечно. Там все-таки все через реестр делается, а хотелось бы утилитой. Ну если у MS нет утилит, способных справится со всеми типами файлов, то ничего кроме реестра не остается.

All
Я отредактировал ряд постов в теме, чтобы придать ей логический вид. Приношу извинения за всю катавасию с предыдущей правкой. Если бы EvgenT сразу создал отдельную тему, вместо вопроса в "Маленьких хитростях", а я немножко лучше разбирался в тонкостях ассоциаций, то мы бы сразу пришли к тому, что имеем сейчас ;)

EvgenT 30-01-2006 09:22 398790

Ааааа..а.а. это разве не маленькая хитрость????

Boa Soft 30-01-2006 13:51 398937

Цитата:

Эту ветку MSFN я видел, конечно. Там все-таки все через реестр делается, а хотелось бы утилитой. Ну если у MS нет утилит, способных справится со всеми типами файлов, то ничего кроме реестра не остается.
До того, как перейти на *.msi я паковал инсталлы в RAR SFX с добавлением самописной утилитки, которая могла по сценарию из ini файла создавать ярлычки, копировать файлы и задавать ассоциации. Все работало нормально, только вот она не умеет делать бэкап стандартных связей - после удаления программы стандартные установки не восстанавливались. Если кому интересно, то могу кусок кода из этого заброшенного проекта периписать в консольный вариант, с задаваемыми из коммандной строки параметрами. Там был параметр override для удаления всех старых ассоциаций.

Можно и проще - доделать один из скриптов на MSFN для нормальной работы со свободным заданием VERB и удалением того, что приводил немного выше.


Debugger 30-01-2006 17:14 399007

Boa Soft

А нельзя ли сделать софтину, которая бы перед запуском установки софтины автоматически запоминала все связи, а после отработки установки - восстанавливала, причем и со старыми ассоциациями. Пример - автоматическая установка Nero Vision и восстановление ассоциаций.

LonerD 20-01-2007 02:40 538799

Ну что, новых идей за год не прибавилось?

Shpionus 06-09-2011 18:05 1747493

Вопрос по поводу ассоциаций NERO VISION актуален!

magon 07-09-2011 03:41 1747727

[тестируем] Утилита для сохранения и восстановления ассоциаций файлов

Shpionus 11-09-2011 22:28 1751068

Спасибо но это не то, запоминать ассоциации перед установкой а после неё их восстанавливать, это не выход. Тем боле что мы незнаем точно что там Неро в реестре меняет. Меня интересует как сделать чтобы именно в процессе установки НЕРО не трогал ассоциации.

MKN 12-09-2011 08:55 1751202

Цитата:

Цитата Shpionus
Меня интересует как сделать чтобы именно в процессе установки НЕРО не трогал ассоциации. »

С штатным дистрибутивом Nero, "напрямую" - никак. Так уж разрабы порешили... Но можно в обход.
Не составляет труда отследить изменения в реестре после установки, касаемые ассоциаций. Если такое ассоциирование не нужно, то добавь в дистрибутив обычный рег(или cmd) файл, отменяющий эти ассоциации после установки.

ps Касательно утилит, работающих с ассоциациями файлов, в том числе и упомянутых здесь - все они крайне не удачны, часто "дремучи", а иногда даже и не работоспособны. Особенно в Win7.


Время: 00:37.

Время: 00:37.
© OSzone.net 2001-