Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Ассоциация файлов в Windows

 
Post new topic   Reply to topic    Total Commander Forum Index -> Программное обеспечение printer-friendly view
View previous topic :: View next topic  
Author Message
Andrey_A



Joined: 10 Apr 2009
Posts: 394
Location: Сочи

Post (Separately) Posted: Thu Nov 12, 2009 03:40    Post subject: Ассоциация файлов в Windows Reply with quote

Что нужно внести в реестр, чтобы тот или иной файл открывался нужной программой в проводнике?
В тотале я настроил ассоциации, но в проводнике проблема. У некоторых любителей тотала, как и у меня, есть полностью Портабельский, настроеный тотал.
Я, к примеру после установки системы просто копирую тотал и работаю, все файлы запускаются тем чем надо через тотал, но хотелоь, чтобы открыв проводник происходило тоже самое.
Я пытался сделать .reg файл, но у меня не получается... помогите чем можете...
И ещё в эту же тему, хотелось, чтобы значки в проводнике, отображались как мне надо (для этого тоже можно наверное создать .reg файл, один раз запустил и всё), а то получается в тотале привык к одному, открываешь проводник, а там ужас...
Back to top
View user's profile Send private message
CaptainFlint



Joined: 14 Dec 2004
Posts: 6151
Location: Москва

Post (Separately) Posted: Thu Nov 12, 2009 10:46    Post subject: Reply with quote

Andrey_A
Вот самый простой REG-файл:
Code:
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\""

.ext — требуемое расширение;
extfile — имя типа (произвольное, но уникальное для ветки HKCR);
C:\Program Files\TotalCmd\wcmicons.dll,26 — значок файла;
C:\Program Files\Some Program\program.exe — программа, которой надо открывать файл.


PS: Это для WinXP. В Висте и, соответственно, Семёрке MS чего-то дикого наворотила с этими ассоциациями, так что там я не экспериментировал, и вышеприведённый вариант может не сработать.
_________________
Почему же, ё-моё, ты нигде не пишешь "ё"?
Back to top
View user's profile Send private message
Andrey_A



Joined: 10 Apr 2009
Posts: 394
Location: Сочи

Post (Separately) Posted: Thu Nov 12, 2009 15:33    Post subject: Reply with quote

Спасибо за подсказку, файлы стали открываться, тем чем надо, но значки стали появляться некорректно, ситуация такая
я создал три reg файла inc.reg, ini.reg, txt.reg - по описанному выше сценарию, все эти три расширения открываются в АкелПад, но значки у них разные, что и прописал в .reg... Нажимаю сначала на
inc.reg, потом ini.reg, затем txt.reg, все открываются, но значки у всех от .txt
Сначала не мог понять, но потом понял: какой последний .reg файл запускаешь, те значки и у всех файлов
Вопрос: Может что-то добавить в выше описаный сценарий, потому что расширение в нём прописано только один раз, в начале и всё, может ещё где-то прописать для точности
Back to top
View user's profile Send private message
Andrey_A



Joined: 10 Apr 2009
Posts: 394
Location: Сочи

Post (Separately) Posted: Thu Nov 12, 2009 16:47    Post subject: Reply with quote

... через полчаса
По-моему разобрался, хотя и сомневаюсь, надо ли было менять extfile на (к примеру) txtfile - я везде заменил и получилось,
Code:
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\""

и файл открывается, и значок нужный
только вот гложет, корректно ли это, или всё правильно
Back to top
View user's profile Send private message
CaptainFlint



Joined: 14 Dec 2004
Posts: 6151
Location: Москва

Post (Separately) Posted: Thu Nov 12, 2009 19:42    Post subject: Reply with quote

Andrey_A
Совершенно правильно. В реестре должны быть созданы два поддерева, первое из которых (HKCR\.txt) тривиально и состоит лишь из расширения файла и имени типа, а второе поддерево (HKCR\txtfile) полностью определяет этот тип, задавая и значок, и программу обработки.
_________________
Почему же, ё-моё, ты нигде не пишешь "ё"?
Back to top
View user's profile Send private message
Andrey_A



Joined: 10 Apr 2009
Posts: 394
Location: Сочи

Post (Separately) Posted: Thu Nov 12, 2009 22:38    Post subject: Reply with quote

Спасибо CaptainFlint!
Back to top
View user's profile Send private message
Andrey_A



Joined: 10 Apr 2009
Posts: 394
Location: Сочи

Post (Separately) Posted: Sun Nov 15, 2009 01:51    Post subject: Reply with quote

Кстати, почвился ещё вопросик по теме:
можно ли в реестр посылать переменную %COMMANDER_PATH%
или реестр её не распознает?
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 10236
Location: Россия, Саратов

Post (Separately) Posted: Sun Nov 15, 2009 11:36    Post subject: Reply with quote

Andrey_A wrote:
или реестр её не распознает?

Конечно, нет.
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
CaptainFlint



Joined: 14 Dec 2004
Posts: 6151
Location: Москва

Post (Separately) Posted: Sun Nov 15, 2009 12:56    Post subject: Reply with quote

Andrey_A wrote:
можно ли в реестр посылать переменную %COMMANDER_PATH%
или реестр её не распознает?

Реестру-то по барабану, чего хранить. Вопрос правильно ставить так, распознает ли эту переменную программа, которая считает этот ключ. Но проблема в том, что переменная %COMMANDER_PATH% определена локально лишь для самого Тотала и порождённых им процессов, а Проводник к таковым не относится, так что этой переменной он попросту не увидит. И даже если явным образом добавить эту переменную глобально в систему, не факт что он вообще станет их разворачивать, это надо экспериментировать.
_________________
Почему же, ё-моё, ты нигде не пишешь "ё"?
Back to top
View user's profile Send private message
Andrey_A



Joined: 10 Apr 2009
Posts: 394
Location: Сочи

Post (Separately) Posted: Tue Nov 17, 2009 22:43    Post subject: Reply with quote

Quote:
И даже если явным образом добавить эту переменную глобально в систему

Есть ли способ, чтобы Windows ВСЕГДА ассоциировал переменную
%COMMANDER_PATH%=c:\Total Commander
чтобы в командной строке по команде cmd /k set ВСЕГДА отображалось
COMMANDER_PATH=c:\Total Commander
т.к. я Тотал после установки системы просто копирую (а не устанавливаю), то думаю, что что-то необходимо внести в реестр чтобы переменная где-то в реестре зафиксировалась
При экспериментах в командной строке то появляется эта запись, то исчезает...!?
Back to top
View user's profile Send private message
CaptainFlint



Joined: 14 Dec 2004
Posts: 6151
Location: Москва

Post (Separately) Posted: Wed Nov 18, 2009 14:57    Post subject: Reply with quote

Andrey_A wrote:
Есть ли способ, чтобы Windows ВСЕГДА ассоциировал переменную

Да. Добавить её явным образом к переменным окружения (Панель управления — Система). С одним исключением: если запустить Тотал из другого каталога, то он переопределит эту переменную в своём окружении и в окружении всех дочерних процессов, и для них, соответственно, значение переменной будет не c:\Total Commander, а другим.

Andrey_A wrote:
При экспериментах в командной строке то появляется эта запись, то исчезает...!?

Самопроизвольно появляться и исчезать она не может. Просто, как я уже сказал, переменная задаётся самим Тоталом в своём личном окружении. Если запускаешь cmd из Тотала, то переменная отнаследуется, если из винды, то не отнаследуется. Всё просто.
_________________
Почему же, ё-моё, ты нигде не пишешь "ё"?
Back to top
View user's profile Send private message
Andrey_A



Joined: 10 Apr 2009
Posts: 394
Location: Сочи

Post (Separately) Posted: Thu Nov 19, 2009 02:05    Post subject: Reply with quote

Quote:
Да. Добавить её явным образом к переменным окружения (Панель управления — Система)

А можно поподробнее об этом, т.е. куда и где добавляют переменные... а может быть через реестр?
Back to top
View user's profile Send private message
Rodny



Joined: 24 Jan 2007
Posts: 949
Location: Могилёв, Беларусь

Post (Separately) Posted: Thu Nov 19, 2009 02:37    Post subject: Reply with quote

Andrey_A
Про реестр не скажу, подробнее вот:
Back to top
View user's profile Send private message
ask-rus



Joined: 10 Nov 2009
Posts: 2076
Location: Russian Federation

Post (Separately) Posted: Wed Jun 30, 2010 11:24    Post subject: Reply with quote

А если задействовать скрипт, ассоциирующий файлы с программами, расположенными в среде %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% на полные и отправляет с подтверждением в реестр.

Собственно, реквест Rolling Eyes.

 !  Avada:
Список расширений, в реальности занимаюший одну строку, разбил на три. Исключительно для удобства чтения.

_________________
«Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Программное обеспечение All times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group