Ветеран
Сообщения: 27449
Благодарности: 8088
|
Профиль
|
Отправить PM
| Цитировать
Цитата A drum moons:
При запуске любого инсталятора происходит автоопределение каталога установки, »
|
Нет. Каталог установки «по умолчанию» задаётся при создании инсталлятора. Рекомендуется использовать путь:
Код: 
Путь к «Program Files»\«Компания»\«Приложение»
При наличии уже установленного приложения (например, более ранней версии) правильный инсталлятор определяет данный факт и предлагает путь для установки не «по умолчанию», а в каталог ранее установленного приложения.
Цитата A drum moons:
а затем внесение значений в реест (думаю это дело рук dll библиотек). Вернее определяется буква диска куда будет устанавливаться программа. И вносятся необходимые значения в реест. »
|
Ещё раз нет. Происходит иначе, нежели Вы описали.
Цитата A drum moons:
В многих программах по изготовлению инсталяторов можно добавлять reg файлы. Созданный инсталятор инсталирует приложение, может быть чего то еще делает (все зависит от фантазии автора, не суть) и вносит изменения в реест, которые берет из reg файла. »
|
В разных бредовых псевдоинсталляторах и не такое бывает. В правильных — файл реестра можно импортировать в проект инсталляции, Затем на его основе создаются отдельные записи в проекте, которые затем могут быть использованы при инсталляции для создания разделов, параметров и задания значений параметров реестра. Причём в Вашем примере:
Цитата A drum moons:
К примеру:
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\DjVu.Document\DefaultIcon]
@="C:\\Program Files\\WinDjView\\WinDjView.exe,0" »
|
путь «C:\Program Files\WinDjView\WinDjView.exe» строится по вышеописанным выше мною принципам:
Скрытый текст
- при установке инсталлятор проверяет, не было ли ранее установленной версии приложения «WinDjView»;
- при положительном ответе — для установки предлагается путь, куда было ранее установлено это приложение;
- при отрицательном — запрашивает у ОС путь к «Program Files», добавляет путь к нему путь «WinDjView» и предлагает для инсталляции его;
- …
- …
- производит в реестре потребные изменения, в их числе — регистрирует тип документа;
- …
- …
- при задании пути к иконке приложения используется ранее определённый путь.
и никакого «импорта файлов реестра».
Коллега, у Вас, к сожалению, весьма извращённое представление о процессах, которые происходят (и должны происходить) при инсталляции приложения.
Цитата A drum moons:
Пробовал устанавливать такое значение @="%PROGRAMFILES%\\WinDjView\\WinDjView.exe,0", но не срослось.»
|
Для использования переменных окружения нужно использовать «REG_EXPAND_SZ», а не «REG_SZ». А «REG_EXPAND_SZ» в файле реестра выглядит как набор строк с hex-значениями, например:
Скрытый текст
Код: 
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\DjVu.Document\DefaultIcon]
"@"=hex(2):25,00,50,00,72,00,6f,00,67,00,72,00,61,00,6d,00,46,00,69,\
00,6c,00,65,00,73,00,25,00,5c,00,57,00,69,00,6e,00,44,00,6a,00,56,00,69,00,\
65,00,77,00,5c,00,57,00,69,00,6e,00,44,00,6a,00,56,00,69,00,65,00,77,00,2e,\
00,65,00,78,00,65,00,2c,00,30,00,00,00
Цитата A drum moons:
Или это в обще не уместно? »
|
Не могу сказать, специально не проверял.
Цитата A drum moons:
Может кто знает как заставить систему (пусть хоть через батник) распознавать буквы локальных дисков, передавать эти значения переменным и собственно сгенерировав значения ветвей реестра добавлять их в этот самый реестр. »
|
Самым правильным вариантом будет использование приличных инсталляторов.
|