Ассоциация файлов в Windows
Модераторы: d-view, Моторокер, Avada, CaptainFlint, Nik
Ассоциация файлов в Windows
Что нужно внести в реестр, чтобы тот или иной файл открывался нужной программой в проводнике?
В тотале я настроил ассоциации, но в проводнике проблема. У некоторых любителей тотала, как и у меня, есть полностью Портабельский, настроеный тотал.
Я, к примеру после установки системы просто копирую тотал и работаю, все файлы запускаются тем чем надо через тотал, но хотелоь, чтобы открыв проводник происходило тоже самое.
Я пытался сделать .reg файл, но у меня не получается... помогите чем можете...
И ещё в эту же тему, хотелось, чтобы значки в проводнике, отображались как мне надо (для этого тоже можно наверное создать .reg файл, один раз запустил и всё), а то получается в тотале привык к одному, открываешь проводник, а там ужас...
В тотале я настроил ассоциации, но в проводнике проблема. У некоторых любителей тотала, как и у меня, есть полностью Портабельский, настроеный тотал.
Я, к примеру после установки системы просто копирую тотал и работаю, все файлы запускаются тем чем надо через тотал, но хотелоь, чтобы открыв проводник происходило тоже самое.
Я пытался сделать .reg файл, но у меня не получается... помогите чем можете...
И ещё в эту же тему, хотелось, чтобы значки в проводнике, отображались как мне надо (для этого тоже можно наверное создать .reg файл, один раз запустил и всё), а то получается в тотале привык к одному, открываешь проводник, а там ужас...
- CaptainFlint
- Сообщения: 6239
- Зарегистрирован: Вт дек 14, 2004 22:34
- Контактная информация:
Andrey_A
Вот самый простой REG-файл:
.ext — требуемое расширение;
extfile — имя типа (произвольное, но уникальное для ветки HKCR);
C:\Program Files\TotalCmd\wcmicons.dll,26 — значок файла;
C:\Program Files\Some Program\program.exe — программа, которой надо открывать файл.
PS: Это для WinXP. В Висте и, соответственно, Семёрке MS чего-то дикого наворотила с этими ассоциациями, так что там я не экспериментировал, и вышеприведённый вариант может не сработать.
Вот самый простой REG-файл:
Код: Выделить всё
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\.ext]
@="extfile"
[HKEY_CLASSES_ROOT\extfile]
[HKEY_CLASSES_ROOT\extfile\DefaultIcon]
@="C:\\Program Files\\TotalCmd\\wcmicons.dll,26"
[HKEY_CLASSES_ROOT\extfile\shell]
[HKEY_CLASSES_ROOT\extfile\shell\open]
[HKEY_CLASSES_ROOT\extfile\shell\open\command]
@="\"C:\\Program Files\\Some Program\\program.exe\" \"%1\""extfile — имя типа (произвольное, но уникальное для ветки HKCR);
C:\Program Files\TotalCmd\wcmicons.dll,26 — значок файла;
C:\Program Files\Some Program\program.exe — программа, которой надо открывать файл.
PS: Это для WinXP. В Висте и, соответственно, Семёрке MS чего-то дикого наворотила с этими ассоциациями, так что там я не экспериментировал, и вышеприведённый вариант может не сработать.
Почему же, ё-моё, ты нигде не пишешь "ё"?
Спасибо за подсказку, файлы стали открываться, тем чем надо, но значки стали появляться некорректно, ситуация такая
я создал три reg файла inc.reg, ini.reg, txt.reg - по описанному выше сценарию, все эти три расширения открываются в АкелПад, но значки у них разные, что и прописал в .reg... Нажимаю сначала на
inc.reg, потом ini.reg, затем txt.reg, все открываются, но значки у всех от .txt
Сначала не мог понять, но потом понял: какой последний .reg файл запускаешь, те значки и у всех файлов
Вопрос: Может что-то добавить в выше описаный сценарий, потому что расширение в нём прописано только один раз, в начале и всё, может ещё где-то прописать для точности
я создал три reg файла inc.reg, ini.reg, txt.reg - по описанному выше сценарию, все эти три расширения открываются в АкелПад, но значки у них разные, что и прописал в .reg... Нажимаю сначала на
inc.reg, потом ini.reg, затем txt.reg, все открываются, но значки у всех от .txt
Сначала не мог понять, но потом понял: какой последний .reg файл запускаешь, те значки и у всех файлов
Вопрос: Может что-то добавить в выше описаный сценарий, потому что расширение в нём прописано только один раз, в начале и всё, может ещё где-то прописать для точности
... через полчаса
По-моему разобрался, хотя и сомневаюсь, надо ли было менять extfile на (к примеру) txtfile - я везде заменил и получилось,
и файл открывается, и значок нужный
только вот гложет, корректно ли это, или всё правильно
По-моему разобрался, хотя и сомневаюсь, надо ли было менять extfile на (к примеру) txtfile - я везде заменил и получилось,
Код: Выделить всё
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\.txt]
@="txtfile"
[HKEY_CLASSES_ROOT\txtfile]
[HKEY_CLASSES_ROOT\txtfile\DefaultIcon]
@="C:\\Total Commander Image\\Files\\МуTotalIcons.dll,2"
[HKEY_CLASSES_ROOT\txtfile\shell]
[HKEY_CLASSES_ROOT\txtfile\shell\open]
[HKEY_CLASSES_ROOT\txtfile\shell\open\command]
@="\"C:\\Total Commander Image\\Plugins\\exe\\AkelPad\\AkelPad.exe\" \"%1\""только вот гложет, корректно ли это, или всё правильно
- CaptainFlint
- Сообщения: 6239
- Зарегистрирован: Вт дек 14, 2004 22:34
- Контактная информация:
Andrey_A
Совершенно правильно. В реестре должны быть созданы два поддерева, первое из которых (HKCR\.txt) тривиально и состоит лишь из расширения файла и имени типа, а второе поддерево (HKCR\txtfile) полностью определяет этот тип, задавая и значок, и программу обработки.
Совершенно правильно. В реестре должны быть созданы два поддерева, первое из которых (HKCR\.txt) тривиально и состоит лишь из расширения файла и имени типа, а второе поддерево (HKCR\txtfile) полностью определяет этот тип, задавая и значок, и программу обработки.
Почему же, ё-моё, ты нигде не пишешь "ё"?
- CaptainFlint
- Сообщения: 6239
- Зарегистрирован: Вт дек 14, 2004 22:34
- Контактная информация:
Реестру-то по барабану, чего хранить. Вопрос правильно ставить так, распознает ли эту переменную программа, которая считает этот ключ. Но проблема в том, что переменная %COMMANDER_PATH% определена локально лишь для самого Тотала и порождённых им процессов, а Проводник к таковым не относится, так что этой переменной он попросту не увидит. И даже если явным образом добавить эту переменную глобально в систему, не факт что он вообще станет их разворачивать, это надо экспериментировать.Andrey_A писал(а):можно ли в реестр посылать переменную %COMMANDER_PATH%
или реестр её не распознает?
Почему же, ё-моё, ты нигде не пишешь "ё"?
Есть ли способ, чтобы Windows ВСЕГДА ассоциировал переменнуюИ даже если явным образом добавить эту переменную глобально в систему
%COMMANDER_PATH%=c:\Total Commander
чтобы в командной строке по команде cmd /k set ВСЕГДА отображалось
COMMANDER_PATH=c:\Total Commander
т.к. я Тотал после установки системы просто копирую (а не устанавливаю), то думаю, что что-то необходимо внести в реестр чтобы переменная где-то в реестре зафиксировалась
При экспериментах в командной строке то появляется эта запись, то исчезает...!?
- CaptainFlint
- Сообщения: 6239
- Зарегистрирован: Вт дек 14, 2004 22:34
- Контактная информация:
Да. Добавить её явным образом к переменным окружения (Панель управления — Система). С одним исключением: если запустить Тотал из другого каталога, то он переопределит эту переменную в своём окружении и в окружении всех дочерних процессов, и для них, соответственно, значение переменной будет не c:\Total Commander, а другим.Andrey_A писал(а):Есть ли способ, чтобы Windows ВСЕГДА ассоциировал переменную
Самопроизвольно появляться и исчезать она не может. Просто, как я уже сказал, переменная задаётся самим Тоталом в своём личном окружении. Если запускаешь cmd из Тотала, то переменная отнаследуется, если из винды, то не отнаследуется. Всё просто.Andrey_A писал(а):При экспериментах в командной строке то появляется эта запись, то исчезает...!?
Почему же, ё-моё, ты нигде не пишешь "ё"?
А если задействовать скрипт, ассоциирующий файлы с программами, расположенными в среде %COMMANDER_PATH%.
Скрипт, имея в наличии конкретные:
- список расширений:
669,aac,aiff,amf,au,avr,caf,cda,far,flac,htk,iff,it,itz,kar,m4a,mat,mdz,mid,
midi,miz,mod,mp1,mp2,mp3,mtm,nst,ogg,okt,paf,ptm,pvf,raw,rf64,rmi,
s3m,s3z,sd2,sds,sf,stm,stz,ult,vlb,voc,w64,wav,wma,wve,xi,xm,xmz
- путь к программе: %COMMANDER_PATH%\SOFT\Winamp\winamp.exe
- значок: %COMMANDER_PATH%\SOFT\Winamp\winamp.exe,0
создает рег-файл, определив, меняет в нем пути с %COMMANDER_PATH% на полные и отправляет с подтверждением в реестр.
Собственно, реквест
.
[mod="Avada"]Список расширений, в реальности занимаюший одну строку, разбил на три. Исключительно для удобства чтения.[/mod]
Скрипт, имея в наличии конкретные:
- список расширений:
669,aac,aiff,amf,au,avr,caf,cda,far,flac,htk,iff,it,itz,kar,m4a,mat,mdz,mid,
midi,miz,mod,mp1,mp2,mp3,mtm,nst,ogg,okt,paf,ptm,pvf,raw,rf64,rmi,
s3m,s3z,sd2,sds,sf,stm,stz,ult,vlb,voc,w64,wav,wma,wve,xi,xm,xmz
- путь к программе: %COMMANDER_PATH%\SOFT\Winamp\winamp.exe
- значок: %COMMANDER_PATH%\SOFT\Winamp\winamp.exe,0
создает рег-файл, определив, меняет в нем пути с %COMMANDER_PATH% на полные и отправляет с подтверждением в реестр.
Собственно, реквест
[mod="Avada"]Список расширений, в реальности занимаюший одну строку, разбил на три. Исключительно для удобства чтения.[/mod]
«Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица
