Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Клиентские ОС Microsoft » Microsoft Windows 2000/XP » Разное - [решено] Автоопределение каталога установки при инсталяции и внесение значений в Реест

Ответить
Настройки темы
Разное - [решено] Автоопределение каталога установки при инсталяции и внесение значений в Реест

Аватара для A drum moons

Пользователь


Сообщения: 52
Благодарности: 0

Профиль | Отправить PM | Цитировать


Привет всем. Перейду сразу к делу.
При запуске любого инсталятора происходит автоопределение каталога установки, а затем внесение значений в реест (думаю это дело рук dll библиотек). Вернее определяется буква диска куда будет устанавливаться программа. И вносятся необходимые значения в реест.

К примеру:
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\DjVu.Document\DefaultIcon]
@="C:\\Program Files\\WinDjView\\WinDjView.exe,0"
и другие...

В многих программах по изготовлению инсталяторов можно добавлять reg файлы. Созданный инсталятор инсталирует приложение, может быть чего то еще делает (все зависит от фантазии автора, не суть) и вносит изменения в реест, которые берет из reg файла. Все бы хорошо, но что если буква локального диска не C, а D? Тогда это приведет к катастрофическим последствиям!

Пробовал устанавливать такое значение @="%PROGRAMFILES%\\WinDjView\\WinDjView.exe,0", но не срослось. Или это в обще не уместно? Может кто знает как заставить систему (пусть хоть через батник) распознавать буквы локальных дисков, передавать эти значения переменным и собственно сгенерировав значения ветвей реестра добавлять их в этот самый реестр. Извиняюсь за ошибки и за столь развернутый вопрос.

Отправлено: 19:20, 31-01-2015

 

Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


Цитата A drum moons:
родной инсталлятор (Mozilla Firefox 35.0.1.0), »
Это ни разу не «родной» инсталлятор, а сборка от Яндекса с его двумя свистоперделками совершенно не нужными расширениями и с заменой всего и вся на свои сервисы.

Цитата A drum moons:
Я посмотрел куда импортирует нужные кусты… Так вот с HKLM no problem, a вот с HKU ступор так как пути имеют вид: HKU\SID_учетной_записи\... »
Продемонстрируйте, что и как Вы смотрели.

Отправлено: 07:09, 22-02-2015 | #21



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для A drum moons

Пользователь


Сообщения: 52
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата Iska:
Продемонстрируйте, что и как Вы смотрели. »
Можно через Ashampoo UnInstaller 5, удобней чем через Regshot. Конечно можно из HKU можно запихнуть все в HKLM и браузер будет по умолчанию для всех пользователей. И меня это не напрягает, если я ставлю его себе, а не кому то у кого вся семья под разными учетками на одной машине. Но просто интересно как инсталлятор определяет SID, хотя может он ссылается на другой куст реестра в HKLM, а реестр сам затем все делает. Прошу заметить это догадки, но никак не утверждения.

Отправлено: 10:23, 22-02-2015 | #22


Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


Продемонстрируйте — это значит продемонстрируйте. Можете использовать скриншоты.

Отправлено: 10:47, 22-02-2015 | #23


Аватара для A drum moons

Пользователь


Сообщения: 52
Благодарности: 0

Профиль | Отправить PM | Цитировать


Так я и использовал скриншоты. Или надо более подробней? Если надо, то могу.

Отправлено: 11:07, 22-02-2015 | #24


Аватара для A drum moons

Пользователь


Сообщения: 52
Благодарности: 0

Профиль | Отправить PM | Цитировать


Установил родную от мозиллы. Посмотрел реестр, a там только в HKLM все суется. Видать для всех юзверей. Ну и ладно.
Без сервисов яндекса и плагинов браузер летает. Хотя до этого отключал, но не все. Признаюсь мне нравиться, некоторые фишки в яндексе (переводчик и встроенный поисковик этого сервиса). Но все равно интересно, как инсталлятор от Яндекса сумел определить SID (ну или что то типо того). Это не критически важно, но если узнаете, то дайте мне знать, спасибо.

Отправлено: 11:22, 22-02-2015 | #25


SHVtYW4=


Сообщения: 3451
Благодарности: 1273

Профиль | Отправить PM | Цитировать


Цитата A drum moons:
Smart Install Maker »
Не о чём, погремушка для баловства. Даже серьёзным инструментом назвать не могу.

Понимаю что справку RusHelp.chm даже не открывали (Совет: Почитайте обязательно!)?

Цитата A drum moons:
Делаю скрытую установку, то есть без диалоговых окон, инсталляция будет по умолчанию, без вмешательства пользователя. »
Т.е и вы думаете что продвинутый пользователь не сообразит использовать ключ /p в командной строке для смены каталога установки программы?
Код: Выделить весь код
Setup.exe /p=D:\WinDjView\
И тогда ваши внесения:
Цитата A drum moons:
Надо так "C:\Program Files\WinDjView\WinDjView.exe" "%1". »
будут нужны как собаке пятая нога.

Правильнее будет так:
Код: Выделить весь код
"%InstallPath%\WinDjView.exe" "%1"
Цитата A drum moons:
Хотя я думаю проблема в том, что я не создовал ассоциацию в HKCR. А создавал в HKLM. »
Цитата A drum moons:
но например при запуске любого документа djvu происходит ошибка типа он не ассоциирован с нужным им расширением. »
WinDjView сам не умеет этого делать?
Смотрите как это происходит:
Код: Выделить весь код
"%InstallPath%\WinDjView.exe" /RegisterFileTypes
инсталлятор отрабатывает именно так.

Хочется через реестр?
Вот вам через реестр:
Действия при инсталляции
Код: Выделить весь код
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.djv]
@="DjVu.Document"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.djvu]
@="DjVu.Document"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\DjVu.Document]
@="DjVu Document"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\DjVu.Document\DefaultIcon]
@="C:\\Program Files\\WinDjView\\WinDjView.exe,0"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\DjVu.Document\shell\open\command]
@="\"C:\\Program Files\\WinDjView\\WinDjView.exe\" \"%1\""

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\DjVu.Document\shell\open\ddeexec]
@="[open(\"%1\")]"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\DjVu.Document\shell\open\ddeexec\Application]
@="WinDjView"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\DjVu.Document\shell\open\ddeexec\IfExec]
@="[rem open]"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\DjVu.Document\shell\open\ddeexec\Topic]
@="System"
Действия при деинсталляции
Код: Выделить весь код
Windows Registry Editor Version 5.00

[-HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.djv]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.djvu]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Classes\DjVu.Document]


Вот пару примеров WinDjView.

Отправлено: 11:43, 22-02-2015 | #26


Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


Покажите скриншоты с информацией, на основании которой Вы сделали выводы о:
Цитата A drum moons:
a вот с HKU ступор так как пути имеют вид: HKU\SID_учетной_записи\... »

Отправлено: 11:44, 22-02-2015 | #27


Аватара для A drum moons

Пользователь


Сообщения: 52
Благодарности: 0

Профиль | Отправить PM | Цитировать


Nordek, но я собираю инсталлы для себя на WPI, с своими заранее выставленными, сконфигурированными настройками, конечно можно использовать ключи тихой установки, но это чревато тем, что потом надо будет настраивать приложение под себя, а это лишние телодвижения. Windjviewer это пройденный этап, и про переменные окружения мне давно известно. Про ключ /p в командной строке для смены каталога установки программы я не знал, снимаю шлапу.
Чем SIM плох я не понимаю, да он проще всяких навороченных inno setup'ов, но так мне не надо создавать всяких диалоговых окон, файлов ответа и т.д. Мне требуется запаковать файлы и добавить кусты реестра и все, тем более это тихая установка, освобождает от лишнего гемора.
Да и какой пользователь будет ставить на D:\? Вот Вы сами так часто ставите? Я думаю нет потому как,если ось на другом диске и она полетит, то после переустановки оси все необходимое в реестре для WinDjViewer'а тоже будет потеряно. Я думаю выбор директории не так уж и важен, тем более если инсталлятор правильно вносит данные в реестр. Конечно у пользователя может быть тысяча причин чтобы инсталлировать на другой диск, но на практике такое встречается весьма редко 1 из 100.

Iska, вот скрин это уже русская сборка от Моzill'ы (не от яндекса) Ссылка на русскую версию. В чисто английской сборке HKU не присутствует. Думаю можно обойтись и без HKU, взять от английской версии кусты реестра, файлы от русской версии firefox'а + можно прилепить профиль с заранее установленными дополнениями и слить воедино.

Отправлено: 12:59, 22-02-2015 | #28


Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


A drum moons, как я и предполагал, Вы некорректно интерпретируете результаты, показанные на приведённом скриншоте.

«S-1-5-21-<machine RID>-500» — это SID учётной записи встроенного администратора (см., например: 2.4.2.4 Well-Known SID Structures). Под которым, как я полагаю, Вы и производите установку. «HKU\S-1-5-21-<machine RID>-500» — реальное положение в реестре загруженного куста текущего (HKCU) пользователя. Т.е., в реальности всё пишется в HKCU, никаких «определений SID» не происходит, да и ни к чему это.

Ровно то же самое происходит и ниже, с «HKU\S-1-5-21-<machine RID>-500_CLasses» — это реальное положение в реестре пользовательской части описания классов, которая после её наложения на машинную часть описания классов, отображается в реестре как «HKEY_CLASSES_ROOT». Т.е., и тут нет никаких «определений SID» при инсталляции. Происходит обычная работа с HKCR.

Про детали работы с реестром можете почитать здесь же, на сайте: реестр site:www.oszone.net - Поиск в Google, прежде всего — Введение: описание реестра Windows.
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:42, 22-02-2015 | #29


Аватара для A drum moons

Пользователь


Сообщения: 52
Благодарности: 0

Профиль | Отправить PM | Цитировать


Значит твики добавляются в HKCU, а после работы реестра (слияний и т.д.), изменения отображаются в HKU. Именно в HKCU надо добавлять твики, которые добавлены в HCU. Я Вас правильно понял?

Отправлено: 13:59, 22-02-2015 | #30



Компьютерный форум OSzone.net » Клиентские ОС Microsoft » Microsoft Windows 2000/XP » Разное - [решено] Автоопределение каталога установки при инсталяции и внесение значений в Реест

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Архивирование с удалением каталога при помощи запуска батника из того же каталога HAMMER7 Скриптовые языки администрирования Windows 0 09-04-2012 20:29
Установка - при инсталяции Vista Business зависает при появлении ProgressBar. _ib_ Microsoft Windows Vista 5 18-09-2008 05:17
Загрузка - [решено] Черный экран после установки недопустимых значений для разрешения экрана Кварц Microsoft Windows 2000/XP 4 21-03-2008 22:34
Внесение изменений во все листы книги Excel при помощи VB макросов Vadikan Программирование и базы данных 4 29-12-2005 02:10
Ошибка при инсталяции OSAMA Непонятные проблемы с Железом 21 26-05-2004 23:55




 
Переход