Как правильно настроить ассоциации файлов в Windows 7 ?

Russian main discussion
  • Author
  • Message
Offline
Posts: 2247
Joined: Tue Aug 07, 2007 2:03 pm
Location: Vinnitsa, Ukraine

Post by FeyFre »

TNX, "замена блокнота" а не "подмена блокнота". Это раз :) Два: это касается блокнота а не Shell-а. Иконки - это личные заморочки именно Проводника, и ублаживать их никто не обязан.

Offline
Posts: 2247
Joined: Tue Aug 07, 2007 2:03 pm
Location: Vinnitsa, Ukraine

Post by FeyFre »

Valrav, а в HKCR\.txt значение ключа по-умолчанию какое?

Offline
Posts: 8
Joined: Mon Aug 13, 2012 11:05 am

Post by Valrav »

FeyFre wrote:Valrav, а в HKCR\.txt значение ключа по-умолчанию какое?

Такое:
Image

Offline
Posts: 8
Joined: Mon Aug 13, 2012 11:05 am

Post by Valrav »

А я думал тут оперативно помогают.

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

Valrav
Оперативно видимо для тех, кто не задает вопросы, на которые уже отвечали в данной теме.

Offline
Posts: 88
Joined: Sun Jun 03, 2012 8:15 am

Post by Visitor7 »

Valrav
У меня XP, .txt указывает на txtfile, соответственно, иконку меняю там. Иконка прописана в трех местах:

Code: Select all

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\txtfile\DefaultIcon]
@="C:\\WINDOWS\\Resources\\Other\\txt\\NotePad.ico,0"

[HKEY_CURRENT_USER\SOFTWARE\Classes\txtfile\DefaultIcon]
@="C:\\WINDOWS\\Resources\\Other\\txt\\NotePad.ico,0"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\txtfile\DefaultIcon]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
  00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,73,00,68,00,\
  65,00,6c,00,6c,00,33,00,32,00,2e,00,64,00,6c,00,6c,00,2c,00,2d,00,31,00,35,\
  00,32,00,00,00
При данном раскладе, мне достаточно поменять ее в HKCU, поскольку он имеет максимальный приоритет для пользователя имени меня.

Code: Select all

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\SOFTWARE\Classes\txtfile\DefaultIcon]
@="F:\\Programs\\_Text\\Akelpad\\AkelPad.exe"
Но можно и все три. Указываю пути к новой иконке и перезагружаюсь. Сразу почему-то не меняется.

Code: Select all

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\txtfile\DefaultIcon]
@="F:\\Programs\\_Text\\Akelpad\\AkelPad.exe"

[HKEY_CURRENT_USER\SOFTWARE\Classes\txtfile\DefaultIcon]
@="F:\\Programs\\_Text\\Akelpad\\AkelPad.exe"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\txtfile\DefaultIcon]
@="F:\\Programs\\_Text\\Akelpad\\AkelPad.exe"
Если по каким-то путям иконка не прописана, то и трогать эти пути не надо, чтобы лишний раз не засорять реестр. По идее, от лишних можно вообще избавиться. Попробуйте удалить все значения txtfile\DefaultIcon кроме HKLM, а в HKLM указать нужный путь и перегрузиться.

Offline
Posts: 88
Joined: Sun Jun 03, 2012 8:15 am

Post by Visitor7 »

Меня всегда раздражало, когда программы без спросу ассоциируются, не предлагая выбор списка расширений, и без спросу меняют иконки. И то и другое иногда удобно, но всегда должен быть выбор - какие файлы ассоциировать и у каких менять иконки. А так же выбор - восстанавливать ли измененные вне программы иконки и ассоциации при следующих запусках программы. И удобней всего, когда это делается не при инсталляции(вообще не люблю программы которые надо инсталлировать), а в специальной вкладке в настройках программы.
То же с объявлением себя в реестре. Unlocker например отлично работает без установки, просто в менюшку SendTo руками добавить. Но разработчики не предусмотрели опции в самой программе добавить его в SendTo как и объявить в реестре для пользователя или всех. Хорошо что он не делает это при запуске автоматом. Но мне например это нужно, чтобы TerraCopy его видел и мог взаимодействовать, приходится регить руками. Потому что TerraCopy туповат и не имеет в меню опции указания пути к Unlocker. Но имеет опции собственной интеграции в настройках и не нуждается в ручных доработках при использовании без установки.
Интеграция драйверов и регистрация компонентов тоже отлично реализуется из настроек, например в AVZ, внедрил драйвер\удалил драйвер. Но большинство программ почему-то не имеют таких функций или тупо делают все перечисленное автоматом при запуске когда нужно и когда не нужно.
Поэтому текущее поведение AkelPad(не менять иконки если уже есть и ассоциировать расширения из настроек) мне кажется хорошим сочетанием минимализма и корректности.

TNX
Offline
Posts: 57
Joined: Thu Jul 12, 2012 10:59 am

Post by TNX »

Visitor7 wrote:Указываю пути к новой иконке и перезагружаюсь. Сразу почему-то не меняется.
В принципе, достаточно выхода из системы или перезапуска Проводника.
Visitor7 wrote:И удобней всего, когда это делается не при инсталляции(вообще не люблю программы которые надо инсталлировать), а в специальной вкладке в настройках программы.
В каких случаях избегают инсталляции? Вижу только один случай - обеспечение портабельности приложения. А портабельность, вообще-то, не предусматривает внесение изменений в систему, в том числе интеграцию в меню Проводника.
Visitor7 wrote:Сам же TerraCopy имеет опции интеграции в настройках и не нуждается в ручных доработках при использовании без установки.
Производя интеграцию через настройки, Вы осуществляете ту же самую инсталляцию :) К примеру, пользователь с ограниченными правами не сможет выполнить действия, которые затрагивают всех пользователей системы.

Offline
Posts: 88
Joined: Sun Jun 03, 2012 8:15 am

Post by Visitor7 »

TNX wrote:В принципе, достаточно выхода из системы или перезапуска Проводника.
Да. Но у меня в меню, например, отсутствует завершение сеанса за ненадобностью, только через ProcessExplorer доступно. А проводник перезагружается автоматом только при наличае соответствующей опции, иначе его руками выбирать надо для повторного запуска. А как в win7, хз.
Visitor7 wrote:В каких случаях избегают инсталляции?
Мне кажется, правильный вопрос звучит так: В каких случаях нужна инсталяция?
Меня интересует чтобы после переустановки винды(с форматированием системного раздела) или на другом компе я мог сразу же запустить программы и работать. И так и происходит. Устанавливать приходится только драйвера и такие программы, которые можно отнести к драйверам со сложной интеграцией или особыми условиями установки, KLiteCodecPak, OutpostFirewall, DaemonTools. И то, еслибы разработчики постарались, последний мог бы интегрироваться в одно мгновение автоматически при первом запуске.
Да чего там говорить. Многие программы неоправданно используют реестр, папки юзера(которые вечно походи на гору хлама) и срут в других местах. Папки юзера вообще имеют смысл только на многопользовательской системе, только тогда оправдывается весь связанный с ними геморрой, а у меня 1 пользователь - админ. Хранение настроек в реестре тоже нужно исключительно для многопользовательских систем, и то лишь как один из возможных видов реализации собственных настроек пользователя. Большинство программ имеют свой формат профилей. В папке юзера или реестре достаточно хранить лишь имя профиля или путь.
Объявление себя в реестре нужно лишь для взаимодействия с другими программами очень редким программам или разделяемым библиотекам. И то, если взаимодействия односторонние и не повальные, это лучше решать другими методами.
Visitor7 wrote:Производя интеграцию через настройки, Вы осуществляете ту же самую инсталляцию
Нифига. Я только устраняю недоработки программы если она написана бездарно и глупо. И занимает это один клик на батнике или регфайле и времени не более секунды.

Offline
Posts: 2247
Joined: Tue Aug 07, 2007 2:03 pm
Location: Vinnitsa, Ukraine

Post by FeyFre »

Но у меня в меню, например, отсутствует завершение сеанса за ненадобностью,
Активировать панель задач и нажать Alt+F4 - не судьба? Всплывает стандартно окно завершения работы, зажимаем Alt+Ctrl+Shift и жмем на отмену - получаем легальное завершение проводника. Потом его запускаем руцями(а по другому никак). Автоперезапуск проводника - только в случае ошибки(и то этим не Проводник занимается), так что готовить ложку не стоит.
DaemonTools. И то, еслибы разработчики постарались, последний мог бы интегрироваться в одно мгновение автоматически при первом запуске.
А вот это уже шиш Вам. DaemonTools - это ни что иное как драйвер(который стартует на много раньше чем появляется подсистема Windows), и Вы сами подтвердили что одобряете инсталляторы для драйверов. А первый запуск может принадлежать пользователю с недостаточными для установки драйверов правами. Где-это видано что-бы Гость устанавливал дрова?

Offline
Posts: 88
Joined: Sun Jun 03, 2012 8:15 am

Post by Visitor7 »

FeyFre
Автоперезапуск проводника - только в случае ошибки.
Не знал, думал по kill process он тоже презапустится.

А вот это уже шиш Вам.
Ну я считаю, что все фишки с правами должны быть так же исключительно по желанию. Чтобы само понятие прав в системе даже не появлялось если пользователю того не нужно. А Daemon должен именно инсталлироваться в одно мгновение, понятно, что инициализация такого скрытного-перескрытного драйвера произойдет только после перезагрузки.

Offline
Posts: 2247
Joined: Tue Aug 07, 2007 2:03 pm
Location: Vinnitsa, Ukraine

Post by FeyFre »

А Daemon должен именно инсталлироваться в одно мгновение
"Одно мгновение"? Знали бы Вы сколько винда делает работы при установке одного единого устройства, пусть даже виртуального: копирование и редактирование volatile файлов, редактирование volatile улья. Винда не боится сбоя электропитания во всех случаях кроме последнего. Моментально не получится никогда. И этот драйвер абсолютно не скрытый, хотя да, он мешает всем остальными подойти к нему ближе чем "на расстояние дневного перехода", а его инициализация происходит мгновенно(перегрузки требует именно защитный механизм от протекторов).

Не поверите как часто нужно пользователю понятие прав доступа.

Offline
Posts: 88
Joined: Sun Jun 03, 2012 8:15 am

Post by Visitor7 »

FeyFre
Знали бы Вы сколько винда делает работы...
Я в этом не разбираюсь, предполагаю лишь косвенно, люблю играться с SysInternals ProcMon.

Моментально не получится никогда.
При нынешних мощностях... Запустите AVZ и поиграйтесь с установкой\удалением драйвера AVZPM и AVZGuard.

И этот драйвер абсолютно не скрытый.
В терминологии я не разбираюсь. Сам по себе(sptd.sys) - видим. Но и не он работает. После его инициализации в автозагрузке появляется sys файл, который меняет имя при каждой загрузке и определяется как Hidden registry entry(rootkit activity). Он узнаваем, типа ac5ktl0u.sys, группа SCSI miniport.

Не поверите как часто нужно пользователю понятие прав доступа.
Я не говорю что не нужно. Говорю что мне и многим это не нужно. И мешает.

Offline
Posts: 8
Joined: Mon Aug 13, 2012 11:05 am

Post by Valrav »

Visitor7 wrote:Valrav
У меня XP, .txt указывает на txtfile, соответственно, иконку меняю там. Иконка прописана в трех местах:

Code: Select all

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\txtfile\DefaultIcon]
@="C:\\WINDOWS\\Resources\\Other\\txt\\NotePad.ico,0"

[HKEY_CURRENT_USER\SOFTWARE\Classes\txtfile\DefaultIcon]
@="C:\\WINDOWS\\Resources\\Other\\txt\\NotePad.ico,0"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\txtfile\DefaultIcon]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
  00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,73,00,68,00,\
  65,00,6c,00,6c,00,33,00,32,00,2e,00,64,00,6c,00,6c,00,2c,00,2d,00,31,00,35,\
  00,32,00,00,00
А у меня win 7. И спрашиваю по тому что способ для XP у меня не проходит. По пути
[HKEY_CURRENT_USER\SOFTWARE\Classes\txtfile\DefaultIcon] вообще нет ничего про txt файл. А по двум другим есть. Кроме того, в win 7 синтаксис написания пути немного другой. На скринах показано как написано по дефолту:
Image Image

Я же по двум имеющимся путям прописал так:

Code: Select all

@%ProgramFiles%\AkelPad\AkelPad.exe

Но, как писал выше, это не дало результатов. По дефолту в конце пути через запятую написано: -469. Я так понял это номер иконки находящейся в exe файле. Можно узнать какой номер иконки файле AkelPad.exe? Попробую добавить его в конец пути и посмотреть что получится.

Offline
Posts: 2247
Joined: Tue Aug 07, 2007 2:03 pm
Location: Vinnitsa, Ukraine

Post by FeyFre »

Valrav
Я так понял это номер иконки находящейся в exe файле. Можно узнать какой номер иконки файле AkelPad.exe? Попробую добавить его в конец пути и посмотреть что получится.
ГОРЕ ОТ УМА. У Проводника есть интерфейс где это всё можно настроить, в том числе и выбрать иконку. И никаких номеров знать не нужно. В панели управления этот пункт назывался "Свойства папки..."
Post Reply