Импорт в реестр параметров, содержащих переменные в значениях
Привет
Не подскажите, как сделать, путь к файлу в ключе реестра, переменным. Например: Код:
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\File_Verification_Database\Shell\open\command\: "C:\Program Files\QuickSFV\QuickSFV.EXE "%1"" |
Wu-Tang, если я правильно понял, что вы имели в виду, можно использовать тип REG_EXPAND_SZ и переменные окружения, например %ProgramFiles%
Код:
Windows Registry Editor Version 5.00 |
Petya V4sechkin,
Думаю правильно. Те ключ должен писаться с правильным указанием диска, на котором есть папка program files. Пример вижу, только не понял, как так обработать ключи с другими путями, например: Код:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\QuickSFV\UninstallString: "C:\Program Files\QuickSFV\QSFVUNST.EXE C:\Program Files\QuickSFV\" Код:
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\*\shellex\ContextMenuHandlers\QuickSFV Shell Extension\: "{906b0e6e-61ce-11d3-8ee2-0060080a7242}" |
Цитата:
Потом экспортировать в REG-файл. |
Petya V4sechkin, а как они получаются? Может написать какой-нибудь конвертер? На входе - REG_SZ с переменной, на выходе REG_EXPAND_SZ.
|
Petya V4sechkin,
Что-то не совсем понятно, ну вот сверху ключи, я привел, что далее, я должен сделать, с каждым или всю пачку можно конвертнуть? Все же я не совсем понимаю, как эта процедура делается. apozlevich, Да, если бы вы это сделали, то было бы чудесно. |
Wu-Tang, для примера возьмем ключ:
Цитата:
Код:
Reg Add HKLM\SOFTWARE\Classes\CLSID\{906b0e6e-61ce-11d3-8ee2-0060080a7242}\InProcServer32 /VE /T REG_EXPAND_SZ /D %%ProgramFiles%%\QuickSFV\QSFVShll.dll /F На выходе получаете Example1.reg Код:
Windows Registry Editor Version 5.00 Цитата:
Код:
Reg Add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\QuickSFV /V UninstallString /T REG_EXPAND_SZ /D "%%ProgramFiles%%\QuickSFV\QSFVUNST.EXE %%ProgramFiles%%\QuickSFV\\" /F Код:
Windows Registry Editor Version 5.00 Код:
Reg Add /? |
Petya V4sechkin, а можно простым скриптом
Код:
@echo off Запускается так: script.cmd <ветвь реестра> <параметр> <файл вывода> Wu-Tang, я имел в виду не конвертер из REG_SZ в REG_EXPAND_SZ, а просто подстановку правильных значений переменных. Хотя сейчас понимаю, что это было бы не совсем правильно. Сегодня займусь конвертером, позже. |
Цитата:
|
Petya V4sechkin, это верно :) Но ведь все заработает?
Кстати, подскажите, а как еще можно получить REG_EXPAND_SZ? |
Цитата:
Цитата:
|
Petya V4sechkin, какая разница между первым и вторым примером?
|
Цитата:
Во втором же примере задаётся значение обычного именованного параметра. |
Не вижу смысла в конвертерах каких-то. Либо руками создали и экспортировали, либо REG ADD, как разложил Petya V4sechkin, с последующим экспортом.
Более того, не вижу смысла гонять туда-сюда - без разницы, какой файл выполнять, REG, CMD или оба. Код:
regedit /s tweak.reg && call tweak.cmd |
Собственно, у меня после применения .reg-файла запускается скрипт, который импортирует оставшиеся значения в реестр.
|
Petya V4sechkin,
Переварил вроде. Есть 2 вопроса: в одном примере вы используете ключ /ve, в другом /v, как узнать когда какой использовать? И в одном - строчка заканчивается одним \, в другом \\. Когда как надо? apozlevich, Цитата:
Может все же возьметесь написать конвертер? Vadikan, Цитата:
|
Wu-Tang, это не шаблон и не надо туда ничего подставлять.
Цитата:
|
Цитата:
|
Цитата:
Код:
Reg Add HKLM\SOFTWARE\Classes\CLSID\{906b0e6e-61ce-11d3-8ee2-0060080a7242}\InProcServer32 /VE /T REG_EXPAND_SZ /D %%ProgramFiles%%\QuickSFV\QSFVShll.dll /F Код:
Reg Add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\QuickSFV /V UninstallString /T REG_EXPAND_SZ /D "%%ProgramFiles%%\QuickSFV\QSFVUNST.EXE %%ProgramFiles%%\QuickSFV\\" /F Цитата:
|
Я так понимаю, что главная проблема в том, что параметр типа «REG_EXPAND_SZ» представлен в *.reg-файле в нечитабельном виде (набором hex)?!
|
Iska, скорее всего :). Для меня проблема в том, что я так просто hex не подправлю, если что.
|
apozlevich, я обычно для ручной работы подобного рода пользую Far Manager с плагином «RegEditor» (RegEditor — редактор системного реестра). Последний позволяет не только удобно работать с реестром (в том числе — импортировать, экспортировать разделы), но и работать с reg-файлами, как с реестром (именно плагин «RegEditor», но не плагин «Registry Browser»!).
Например… |
Ох.. ниасилил, многабукав. Завтра почитаю. Что-то мне подсказывает, что это будет полезным.
Кстати, знали бы вы, что пришло мне на электронку после такого поста... |
Цитата:
|
Только все рамочки не символами а их кодом.. Хм.. Как это правильно называется... В общем, если вам так интересно, могу запостить скриншот. Но все же, это оффтопик. |
apozlevich,
Цитата:
Vadikan, Задача-автоматизировано конвертнуть ряд ключей, содержащих пути. apozlevich, Цитата:
|
Wu-Tang, да забудь про этот скрипт, он не панацея и работает только в одном случае из ста. Тем более, это просто команды Petya V4sechkin, объединенные в одну. Забей.
Цитата:
Код:
REG ADD Цитата:
Код:
@echo off Код:
reg add <ветвь реестра> /v <имя значения> /t REG_EXPAND_SZ /d <значение> /f В "Значении" тебе надо указать путь, используя переменную среды (про них рассказывается здесь, там же есть насчет импорта значений реестра таким способом). Если тебе нужно импортировать "Значение по умолчанию", что, по моему опыту, бывает редко, тебе нужно использовать код Код:
reg add <ветвь реестра> /ve /t REG_EXPAND_SZ /d <значение> /f |
apozlevich,
У меня насчет ключей остался вопрос открытым - http://forum.oszone.net/post-1828640-16.html я его здесь задавал Petya V4sechkin Цитата:
Ты не мог бы пример привести, чтоб мне наглядно было понятно, вот, например, ключи: Код:
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\File_Verification_Database\DefaultIcon] Заранее спасибо. |
Цитата:
Цитата:
Цитата:
|
apozlevich,
Я всеже понять не могу когда использовать /ve, а когда /v? |
/ve используется при "параметрах по умолчанию",
Код:
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\File_Verification_Database\DefaultIcon] |
Хм... Сейчас копаюсь в одном файле твиков одного хорошего форумчанина, такие строки
Код:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System] |
apozlevich,
Вроде бы такой вариант не будет срабатывать. |
А если это написал simplix? Он конечно не Чак Норрис, но вроде знает, что пишет.
|
apozlevich,
В любом случае лучше протестить самостоятельно... |
apozlevich,
Ты не пробовал еще пока? |
Нет, еще не на чем, но сегодня я узнаю точно (WinXP Simplix Edition стоит в театре, где я техник. Во-первых убью того, кто его там поставил, а во-вторых, спрошу, работало ли это.)
|
Время: 00:17. |
Время: 00:17.
© OSzone.net 2001-