[решено] Импорт твиков реестра - экспериментальный подход.

Ответить
Аватара пользователя
Андрамедон

[решено] Импорт твиков реестра - экспериментальный подход.

Сообщение Андрамедон »

Итак, имею два файла: HKCU.reg и HKLM.reg. Это нужные мне твики реестра, которые надо импортировать во время автоматической установки Windows. OEM папки я не использую, соответственно будет использоваться метод svcpack.inf. По правилам, которые я считаю истиной в последней инстанции, твики из HKCU.reg должны импортироваться до первого входа в систему (на Т-13), а твики из HKLM.reg - при первом входе в систему, то есть из RunOnceEx. В статьях, которые я прочитал на oszone.net, предлагалось использовать для этих целей .CMD файлы, которые отрабатывают на Т-13, внося все данные в реестр. А вот какая идея родилась у меня. Берем HKCU.reg и в начало (или в конец) добавляем строки:





Код:

Код: Выделить всё

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx\666]
"RunTweaksHKLM"="REGEDIT /S %systemdrive%\\HKLM.reg"

Далее файлы HKCU.reg и HKLM.reg упаковываем в SFX архив от архиватора RAR, обзываем его, например, MyTweaks.exe, в настройках SFX архива устанавливаем: "Путь для распаковки" - %systemdrive%, "Выполнить после распаковки" - REGEDIT /S %systemdrive%\HKCU.reg, "Режим вывода информации" - Скрыть всё. После этого прицепляем MyTweaks.exe в качестве аддона к UpdatePack. Теперь, по логике вещей, должно произойти следующее: во время установки Windows на Т-13 запускается MyTweaks.exe, он распаковывает HKCU.reg и HKLM.reg в %systemdrive% (у большинства это диск "С") и после распаковки выполняет команду REGEDIT /S %systemdrive%\HKCU.reg, которая просто вносит информацию в реестр из HKCU.reg (в том числе и нужные записи для RunOnceEx), а при первом входе в систему отрабатывается команда из RunOnceEx - REGEDIT /S %systemdrive%\HKLM.reg, которая вносит информацию в реестр из HKLM.reg.



Заметьте, здесь не используется никаких .CMD файлов.

Собственно, главный вопрос - прокатит ли такой способ? Возможно, я в чем-то ошибся, буду рад выслушать вашу критику, дополнения.
Аватара пользователя
Vadikan

Re: [решено] Импорт твиков реестра - экспериментальный подход.

Сообщение Vadikan »

Цитата Андрамедон:



"RunTweaksHKLM"="REGEDIT /S %systemdrive%\\HKLM.reg"
[решено] Импорт твиков реестра - экспериментальный подход.




Это не сработает, потому что для работы переменных нужен параметр REG_EXPAND_SZ, а у вас REG_SZ. Поэтому в
RunOnceEx
и используется командный файл - переменная считывается в момент импорта, а в реестр уже импортируется ее значение.




Цитата Андрамедон:



Заметьте, здесь не используется никаких .CMD файлов.
[решено] Импорт твиков реестра - экспериментальный подход.




Зато используете SFX и аддон. Не очень понятно, в чем выгода такого подхода...
Аватара пользователя
Андрамедон

Re: [решено] Импорт твиков реестра - экспериментальный подход.

Сообщение Андрамедон »

Vadikan, в статье
"Использование файла svcpack.inf для установки программ и импорта твиков реестра"
есть такой код для .CMD:



Код:

Код: Выделить всё

@echo off
:: Укажите путь к папке, в которой находится исполняемый файл, относительно корня компакт-диска
SET folder=install
:: Определяем букву компакт-диска
FOR %%d IN (c d e f g h i j k l m n o p q r s t u v w x y z) DO IF EXIST %%d:\WIN51 SET CDROM=%%d:
SET KEY=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx
REG ADD %KEY%\999 /V 1 /D "%CDROM%\%folder%\file.exe" /f

Я его переделал так:



Код:

Код: Выделить всё

@echo off
SET KEY=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx
REG ADD %KEY%\666 /V RunTweaksHKLM /D "REGEDIT /S %systemdrive%\HKLM.reg" /f

и запустил из под винды, потом запустил regedit и увидел, что в RunOnceEx добавилась переменная типа REG_SZ (во всяком случае именно так показал regedit) RunTweaksHKLM = REGEDIT /S C:\HKLM.reg, могу дать скриншот.

Може я что-то не так понял? Объясни, тем более в статье
RunOnceEx
есть скриншот, где ясно видно, что в RunOnceEx добавляются переменные типа REG_SZ Изображение
Аватара пользователя
Vadikan

Re: [решено] Импорт твиков реестра - экспериментальный подход.

Сообщение Vadikan »

Цитата Андрамедон:



тем более в статье RunOnceEx есть скриншот, где ясно видно, что в RunOnceEx добавляются переменные типа REG_SZ
[решено] Импорт твиков реестра - экспериментальный подход.




Туда добавляются параметры типа REG_SZ - на скриншоте видно, что в значении параметров нет переменных. Они обрабатываются при запуске командного файла, а в реестр вносится возвращаемое значение переменной. В общем, я просто перефразировал предыдущее сообщение.
Аватара пользователя
Андрамедон

Re: [решено] Импорт твиков реестра - экспериментальный подход.

Сообщение Андрамедон »

Цитата Vadikan:



на скриншоте видно, что в значении параметров нет переменных.
[решено] Импорт твиков реестра - экспериментальный подход.




Ах, да, понял теперь о чем разговор, ступил малость Изображение , ведь переменная %systemdrive% будет непонятна Regedit'у. Написал вот так:





Код:

Код: Выделить всё

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx\666]
"RunTweaksHKLM"="REGEDIT /S C:\\HKLM.reg"

Реально работает, правда, теряется универсальность - диска "C" может и не быть (хотя это и мало вероятно, я всегда ставлю систему на диск "C", он у меня есть всегда).




Цитата Vadikan:



Зато используете SFX и аддон. Не очень понятно, в чем выгода такого подхода...
[решено] Импорт твиков реестра - экспериментальный подход.




Дело даже не в выгоде, а просто в альтернативе, хотя лично мне намного проще и понятнее потыкать на кнопки и переключатели в настройках SFX, а потом прилепить его к UpdatePack'у, чем долбить по клаве сочиняя .CMD, в которых я не особо секу, а потом прописывать их в svcpack.inf... Ну ленивый я человек, любящий всем сердцем GUI Изображение
Аватара пользователя
Vadikan

Re: [решено] Импорт твиков реестра - экспериментальный подход.

Сообщение Vadikan »

Цитата Андрамедон:



Реально работает, правда, теряется универсальность - диска "C" может и не быть
[решено] Импорт твиков реестра - экспериментальный подход.




О чем и речь. Статьи же написаны для общего случая, а не для конкретного.
Цитата Андрамедон:



чем долбить по клаве сочиняя .CMD, в которых я не особо секу
[решено] Импорт твиков реестра - экспериментальный подход.




Пример есть в статье, достаточно адаптировать его под свой случай.
Цитата Андрамедон:



а потом прописывать их в svcpack.inf...
[решено] Импорт твиков реестра - экспериментальный подход.




Ну да, название файла прописать - это огромный труд Изображение



В общем, работет, вас устраивает - чудесно!
Ответить

Вернуться в «Автоматическая установка Windows 2000/XP/2003»