Софт вопросы

Нужны программы для смены и сохранения файловых ассоциаций в ОС

,

Софт вопросы

Дата публикации:

Sandro_Guladze, 21.11.2016 - 5:58

1. Нужны программы для смены и сохранения файловых ассоциаций в ОС.

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

ОС Windows XP SP3.


Из примеров - Ashampoo WinOptimizer File Associator.

Но там нет опции сохранения настроек, файла конфигурации.


2. Если вам известно, как экспортировать/импортировать настройки, конфигурацию Ashampoo WinOptimizer, то это тоже поможет.


Кто подскажет?


Спасибо.

HugoBo-SS, 21.11.2016 - 20:51

Какой-то куст реестра отвечает за это, HKEY_CLASSES_ROOT (частично).

Почитай тут:

Sandro_Guladze, 21.11.2016 - 20:55

Спасибо.

Посмотрим.

Sandro_Guladze, 1.12.2016 - 17:01

Ссылку смотрел.

ПО по ней – тоже.

Программы по ней очень простые и без функций сохранения файла конфигурации (т-е, назначения системных ассоциаций).

Большинство их видел ранее.


Рекомендовали попробовать это:

» Нажмите, для открытия спойлера | Press to open the spoiler «


HugoBo-SS, 2.12.2016 - 1:12

Толково, с базисом. Я же упоминал, что с реестром надо работать. И, в данном мсучае, лучший бекап ассоциаций с быстрым восстановлением - reg-файл соответсвующих кустов.
Кусты разные, поскольку есть ассоциации по-умолчанию, ассоциации для всех пользователей и ассоциации для конкретного пользователя. Потому, думаю, и нет универсальных инструментов.

На ту же тему:


Sandro_Guladze, 2.12.2016 - 15:29

HugoBo-SS,

спасибо за ссылки.

Но не для системщика - это все темный лес...

Также рекоендовали:

================
После настройки ассоциаций экспортировать ветку
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\F ileExts
в *.reg файл, а по необходимости запускаем файлик и соглашаемся с внесением изменений в реестр
================


Проверено, но результатов нет.

======
А именно:

1. Меняю в Ashampoo WinOptimizer File Associator назначение ассоциаций файла (пример, для *.ape - с foobar2000.exe на VLC.exe).
Результат подтверждается соотв. открытием файлов в Total Comm.
Обратное изменение назначения также подтверждается.

2. Но эти изменения ассоциаций в реестре по рекомендуемой ветке - не видны.

3. Созданием и запуском (-ми) реестрового файла изменить ассоциации, установленные в WO F. A. не получилось...

После выполнение reg-файла перезагрузить ПК пробовал.
======

HugoBo-SS, может, Вы бы подсказали, какие ветви реестра надо сохранять/восстанавливать для сохранения/восстановления файловых ассоциаций?

Аналогично хотелось бы также сохранять/восстанавливать назначения иконок файлам в системе.

ОС W'XP SP3

HugoBo-SS, 2.12.2016 - 19:29

Ветки разные бывают. Основная для ассоциаций HKEY_CLASSES_ROOT. Я и повторюсь: никто универсального и не пишет, поскольку многое достаточно индивидуально ( накопленное наследие совместимости и криворукость разработчиков, и систем и целевых программ). Так что придётся Вам, скорее всего,читать материалы ( там описано и как отследить изменения, в частности) и собрать свой регфайл. Если такая уж нужда именно в подобном бекапе есть.
Не проще сделать бекап настроенной системы целиком ( для этого-то , как раз, инструментов валом, поскольку востребовано biggrin.gif) ) ?

nokeMoH, 3.12.2016 - 14:50

Цитата | Quote(Sandro_Guladze @ 1.12.2016 - 17:09)
» Файловые ассоциации в операционных системах семейства Windows «

Интересная статейка, тоже Wndows XP и не однократно задавался подобным вопросом.. Не совсем осталось понятно что для этой цели нужно всё таки сделать.. Создал *.bat файл, из-под него создался файл myassoc с необходимыми настройками, а что делать дальше ?.. Созданный файл myassoc не решает проблему до конца, он всего лишь помогает системе не оступиться, и указывает всего лишь, что к примеру *.txt файлы относятся к разряду Текстовых Файлов, а *.mp3 файлы, - из категории музыкальных, то есть чтобы Текстовые файлы система не пыталась ошибочно открывать с помощью какого либо проигрывателя или наоборот.. А вот вторым шагом - для того чтобы системе назначить уже конкретные действия, файлы каких *.форматов каким приложением открывать, тут нужны дополнительные настройки..

Подскажите пожалуйста, или в этой статье не присутствует полная информация, или я её немножечко не понял, вся информация далее показалась немного запутанной.. Что конкретно нужно сделать для того, чтобы сохранить Ассоциации приложений для будущего ?..

Sandro_Guladze, 3.12.2016 - 15:58

*Подскажите пожалуйста, или в этой статье не присутствует полная информация, или я её немножечко не понял, вся информация далее показалась немного запутанной.. Что конкретно нужно сделать для того, чтобы сохранить Ассоциации приложений для будущего ?..*


Пересмотрел около десятка программ для этого - и ни одна не сохраняет настройки.

Давайте вместе еще раз спросим у HugoBo-SS'а.

Будут уточнения или что-либо выяснится - дам знать.

HugoBo-SS, 3.12.2016 - 22:34

Не bat файл, а reg файл: экпортируете из реестра нужные ветви(их называют и кусты, и ульи и как только не называют biggrin.gif) стандартным regedit -ом. Получаете бычный текстовой файл с правильным заголовком ( внутри) и понятными реестру записями. Можно любым ПРОСТЫМ текстовым редактором ( встроенным блокнотом, к примеру) объединить несколько файлов в один ( оставив ОДИН заголовок (сортировка последовательностей записей не принципиальна, принципиально - сохранение синтаксиса, который указывает разделы, формат и значение параметра). Никакого космоса, всё элементарно. Для удобства, в дальнейшем, понимания содержимого, можно вставить свои комеентарии ( строки текста, начинающиеся с точки с запятой) smile.gif



Восстанавливается простым зауском регфайла под повышенными привилегиями ( от администратора).

В root - стандартные ( по-умолчанию, дефолтные) классы форматов, в current user classes - переназначенные и добавленные.
Вприведённых выше статьях, кажется, всё понятно: суть - одна и та же. Методы реализации м.б. разные. Можно написать батник, можно скрипт, можно регфайл.

Sandro_Guladze, 5.12.2016 - 8:56

Сделал поиски в реестре по Classes и по расширению .ape (для примера).

Итого, обнаружились ветки реестра, где есть наборы расширений и Classes:

HKEY_CLASSES_ROOT

HKEY_LOCAL_MACHINE\SOFTWARE\Classes

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\F ileExts

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Media Type\Extensions

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\SystemFileAssociations

HKEY_USERS\S-1-5-21-57989841-562591055-839522115-1003\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts


Это все, что требуется сохранять/восстанавливать?

zoog, 5.12.2016 - 12:09

Sandro_Guladze (кстати, это действительно такое имя?), на этот вопрос рационального ответа нет, сами создатели виндовс говорят, что не понимают, как она работает. Так что только эксперимент.

HugoBo-SS, 5.12.2016 - 23:41

Цитата | Quote(Sandro_Guladze @ 5.12.2016 - 9:04)
Это все, что требуется сохранять/восстанавливать?
*


Для гарантии работоспособности, подобной текущей, да. Хотя потом можно бы и вычистить неизменённые системные умолчания ( они есть в системе изначально всегда). Но это - небыстрое занятие.

Всё же советую повнимательней ознакомиться с предложенным уважаемым nokeMoHом материалом ( на предмет размещения в реестре, а не на создания батника). И со статьёй по ссылке с OSZONE.

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

И хочу предупредить: полученный файл, конечно, полностью восстановит работоспособность ассоциаций, НО... при наличии ВСЕХ АССОЦИИРОВАННЫХ ПРОГРАММ С ИХ ПУТЯМИ расположения ( если пути нестандартные), в той системе, на которой вы его запустите. Ну, или ротдётся подправить свой регфайл с учётом новых реалий ( что, впрочем, не очень сложно)/ smile.gif

nokeMoH, 6.12.2016 - 22:58

У меня есть другая идея.. Вот, как бы это попробовал сделать бы я.. Рассказ может получиться долгим, но идея рассчитываю что не плохая.. Суть сего действия такова:

Начну с примера, существует миллион разных программ для ОС Windows, у каждой из них, свой формат файла, непосредственно с которым, работает "только эта" программа и всё (PhotoShop/PSD, SoundForge/SFK, Opera/HTML и куча куча всевозможных примеров).. Изначально, до установки этого софта в систему, ОС и знать не знала что это например за такой файл FILE.psd, и хоть ты тресни, потрать ты хоть всю свою жизнь на изучение голой ОС (только что установленной), ты бы в жизни ни чего не смог сделать с этим файлом, потому что ни одно из приложений не сможет распознать чужеродную структуру неизвестного ему файла, все попытки будут тщетны.. А что происходит ?, мы устанавливаем приложение, то же самое Adobe PhotoShop и ву-а-ля, компонент FILE.psd больше не имеет непонятный вид, больше не появляется зловредное окошко "Открыть с помощью", он тут же сразу при двойном клике по нём, начинает открываться в PhotoShop программе и у этого файла (расширения) даже появляется иконка.. А получается это в результате таких действий, что во время установки приложения PhotoShop, установщик добавляет во все нужные места "Ассоциации" к нужному расширению в систему, то есть, установщик умеет привязывать определённые Расширения к определённым Приложениям в ОС.. Ну или может быть я всё таки ошибаюсь, и это не дело рук установщика, а непосредственно самой утилиты, так как в настройках практически любого приложения присутствует галочка в собственных опциях "Ассоциировать все .*** файлы с этим приложением".. От сюда выходит, что способ всё таки он есть, как заставить определённые расширения, привязать в систему к определённым приложениям..

А теперь ближе к делу:

Есть вариант, всё сделать в ручную, результат 100 процентный, но очень утомительный и долгий.. Кликать по каждому расширению, и в окошке "Открыть с помощью" для каждого отдельного случая выбирать только своё необходимое.. А есть вариант по интереснее, менее мучительный, но если он всё таки существует, то время затраченное на его настройку единожды, себя оправдает.. Идея такая.. Создать BAT'ник.. Я не силён в таких командах, нужно искать в сети или спрашивать у профессионалов с нашего форума).. Нужно примерно следующее..

Допустим (если это необходимо) в папке вместе с этим BAT'ником (или вместо него нужным скриптом) будут находиться пустые файлы, по своей сути без какой-либо информации внутри себя, просто для обозначения Расширения (файлы PSD.psd, SFK.sfk, MP3.mp3, MKV.mkv и тысяча других), и этот BAT файл, используя необходимый набор команд - будет открывать изначально неизвестный системе Определённый файл, определённым приложением, да и не просто открывать, а желательно с подавлением окошка "Открыть с помощью"... И ведь наверняка, должен существовать в мире код, такая команда, которая бы смогла привязать (ассоциировать) нужные пользователю форматы расширений к определённому софту.. Предполагаю, что эту проблему с ассоциациями можно попробовать покапать в этом направлении..

HugoBo-SS, 6.12.2016 - 23:23

Цитата | Quote(nokeMoH @ 6.12.2016 - 23:06)
должен существовать в мире код, такая команда, которая бы смогла привязать (ассоциировать) нужные пользователю форматы расширений к определённому софту..
*


Конечно, но вариантов привязки несколько, причём они разняться от системы к системе ( виндовс, имею в виду), поскольку сама база настроек всего и вся ( реестр) от версии к версии меняется и меняются права доступа к определённым веткам, меняются полномочия категорий прав доступа.

Потому и индивидуально это всё ( поскольку ВСЕ существующие расширения не использует никто; почти каждый новый божий день появляются новые форматы; многие старые форматы отмирают или видоизменяются ( и в плане машинной интерпритации); есть семейства форматов, виды которых отличающиеся незначительно снаружи, но значительно внутри ( соответсвенно требуют разных обработчиков: пример - семейство CAD-форматов)) А наследование совместимости, т.н. legacy, далеко не всеми обработчиками поддерживается ( по разным причинам).


Для обработки многих популярных форматов выбор обработчиков - мульён ( утрирую) программ ( а конкретного пользователя интересует одна, любимая biggrin.gif ), для некоторых "'эксклюзивных" - один, который стоит 100500 галактических динариев, а сам формат закрыт и как устроен неизвестно ( и расковыривать его никто для широкой общественности не будет, поскольку широкую общественность этот формат не интересует от слова совсем).

Можно ещё аргументов привести в бессмысленности попыток создания универсального интсрумента, но, думаю, достаточно и этого smile.gif
Потому и не пишет никто универсальных бекаперов ассоциаций. cool.gif

Sandro_Guladze, 7.12.2016 - 8:54

Пробовал экспортировать ветки реестра в reg-файл.


HKEY_CLASSES_ROOT

HKEY_LOCAL_MACHINE\SOFTWARE\Classes

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\F ileExts

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Media Type\Extensions

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\SystemFileAssociations

HKEY_USERS\S-1-5-21-57989841-562591055-839522115-1003\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts


На выходе получались файлы по 24мБ, 27мБ...


Сложным это делом оказалось - сохранение и восстановление всех ассоциаций.

HugoBo-SS, 8.12.2016 - 2:28

Сам регфайл, по содержимому - обычный текстовой. Ужимается при при архивации любым архиватором отлично. Запакуйте и отложите на полочку smile.gif

Sandro_Guladze, 9.12.2016 - 9:47

Вот рекомендовали :
» Нажмите, для открытия спойлера | Press to open the spoiler «


Портабельная.

И якобы оно может бекапить все расширения системы сразу.

См. "Create or restore a backup of registry settings" внизу самого первого окна ПО.

И якобы оно должно создавать бекап-файлы в папке:

AppData\Local\factormystic.net\Default Programs Editor\2.7.2675.2253\backups\20161207094518\hkcu_e_a.dat
AppData\Local\factormystic.net\Default Programs Editor\2.7.2675.2253\backups\20161207094518\hkcu_fileexts.dat
AppData\Local\factormystic.net\Default Programs Editor\2.7.2675.2253\backups\20161207094518\hkcu_s_c.dat
AppData\Local\factormystic.net\Default Programs Editor\2.7.2675.2253\backups\20161207094518\hklm_e_a.dat
AppData\Local\factormystic.net\Default Programs Editor\2.7.2675.2253\backups\20161207094518\hklm_s_c.dat


Но, к сожалению...

Программа создает в Documents and Settings пустые папки (20161209075855, 20161209080024, 20161209082218...).

Поиск по именам файлов в Documents and Settings (напр. hklm_e_a.dat) результатов не дал.

Папки пустые если расширения (напр., ape) перед пробой сделать бекап не менять, либо менять.


Программа взята с оффсайта (https://defaultprogramseditor.com/).

ОС W'XP SP3 со всеми обновлениями, лицензия.


Кто-нибудь попробует это ПО на этот бекапа?


В чем-то секрет?

nokeMoH, 11.12.2016 - 0:41

Цитата | Quote(HugoBo-SS @ 6.12.2016 - 23:31)
Цитата | Quote(nokeMoH @ 6.12.2016 - 23:06)

должен существовать в мире код, такая команда, которая бы смогла привязать (ассоциировать) нужные пользователю форматы расширений к определённому софту..
*


Конечно, но вариантов привязки несколько, причём они разняться от системы к системе ( виндовс, имею в виду), поскольку сама база настроек всего и вся ( реестр) от версии к версии меняется и меняются права доступа к определённым веткам, меняются полномочия категорий прав доступа...

(1)

Я нашёл такой код и он работает, проверял.. Это пример для **.txt формата..Для проверки создал два **.BAT файла.. Клик по одному из них - все TXT открываются Блокнотом, тут же сразу клик по второму BAT файлу, файл TXT открывается теперь в BRED (у каждого своё)..

» Open .txt «

»» Нажмите, для закрытия спойлера | Press to close the spoiler ««

Для решения подобной проблемы описанной выше, способ пожалуй тоже подходит, но на оформление такого списка команд подобных BAT файлов, потребовалось бы уйма времени, если бы не был найден универсальный автоматизированный способ по генерации подобного списка команд каким-нибудь сторонним софтом (я уверен что и этот способ тоже в мире существует, как было бы можно автоматизировать создание подобных BAT файлов)..

(2)

Есть ещё один очень хитрый способ, который гарантирует относительно 100 процентный результат сохранения всех нужных ассоциаций.. Он проще чем первый, но всё же небольшой первоначальной настройке подлежит.. Почему относительно 100 процентный - а потому что я не совсем уверен в том, что на новой системе это приживётся, но не уверен я процентов на 5-10, так что шансы всё равно очень большие имеются.. Скорее всего ОС Windows создаёт определённые дефолтные Reg-ключи в нужных местах для ассоциаций Расширений с Приложениями, а не генерирует для привязки одного к другому всякий раз разные параметры, это было бы глупо, по этому, считаю что шансы что вариант поможет - Есть.. Ближе к делу...

Пойдём не прямым путём, а немного схитрим, и сделаем ход от противного... Существует утилита для обратного - для отвязки ассоциаций расширений от приложений.. То есть чтобы при клике по файлу, он не открывался каким-нибудь софтом, а наоборот - предлагал пользователю выбор как его теперь нужно открывать, то есть при клике появляется окошко "Открыть с помощью", иными словами - утилита Обнуляет ассоциации, а точнее, удаляет уже существующие.. Такая утилита называется Unassoc, беда в том, что она работает только на Win7 и Vista, так как в этих системах отсутствуют штатные инструменты для ручной самостоятельной отвязки расширений от приложений, по этому для WindowsXP нам она не подходит.. В WinXP это можно будет сделать ручками.. А теперь подробнее о хитром способе, нам можно будет воспользоваться программой для фиксации изменений ОС до установки приложения и после, - только вот мы будет фиксировать эти изменения сначала До удаления, а потом после удаления, то есть в обратном порядке, чтобы потом после бекапа, вернуть то что было удалено или изменено (такой вариант подходит только для реестра, удалённые файлы не восстанавливаются).. Суть идеи проста, сначала, когда у Расширения есть привязка к определённому Приложению, мы сохраняем состояние Реестра, - потом... мы удаляем эту привязку Расширения от Приложения, и снова сохраняем состояние реестра.. Далее анализируем изменения, и на выходе получаем пакет Бекапа, который из нынешнего состояния ОС (с уже отсутствием привязки расширения к приложению) поможет нам вернуться к такому состоянию ОС, когда у этого расширения привязка к приложению есть.. Подобных программ для создания снимков и бекапов куча, мне нравится Reg Organizer.. Скачать удобную версию можно тут.. Если утилиту использовать только для этой цели, то рекомендую в Настройках Установки Приложений, в качестве объектов слежения за изменениями, убрать галочки со всех Локальных Дисков и системных файлов, а во Вкладке работы с Реестром, выставить галочки везде (по-умолчанию некоторые включены не полностью), так будут быстрее создаваться текущие снимки системы..

» Скачать Reg Organizer v4.10 тут «


Отвязывать Расширения от нужных Приложений в WindowsXP так: (в любом открытом окне в самом верху) ищем меню "Сервис" => "Свойства папки" => "Типы файлов" => "Выбираем нужное расширение" => "Удалить" => "Больше ни чего не делаем, ассоциация Снята" .... (если случайно это кнопочка не активна, и нажать её нельзя, кликаем сначала по => "Восстановить", а потом по => "Удалить")

Описанный второй способ лично проверил - на одной и той же системе восстановление даже после нескольких перезагрузок ПК работает идеально, восстанавливается всё, вплоть до иконок.. Часть иконок обновляется сразу, а другая часть принимает нужный вид только после перезагрузки системы..

Sandro_Guladze, 15.12.2016 - 18:13

Вопрос восстановления ассоциация оказался слишком сложным и затратным.

Спасибо всем откликнувшимся.

HugoBo-SS, 15.12.2016 - 23:47

Ми же Вас предпреждали... Овчинка выделки не стоит. Настроил систему -> бекапнул целиком ( на крайняк, только профиль пользователя). А подобная тема - польза только для общего понятия об организации ассоциаций. smile.gif


версия для печати -> Полная версия

SoftoRooM © 2004-2024