Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Автоматическая установка Windows 2000/XP/2003 (http://forum.oszone.net/forumdisplay.php?f=32)
-   -   [решено] Импорт в реестр параметров, содержащих переменные в значениях (http://forum.oszone.net/showthread.php?t=224336)

Wu-Tang 01-01-2012 06:44 1826363

Импорт в реестр параметров, содержащих переменные в значениях
 
Привет
Не подскажите, как сделать, путь к файлу в ключе реестра, переменным.
Например:
Код:

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\File_Verification_Database\Shell\open\command\: "C:\Program Files\QuickSFV\QuickSFV.EXE "%1""

Petya V4sechkin 01-01-2012 07:54 1826372

Wu-Tang, если я правильно понял, что вы имели в виду, можно использовать тип REG_EXPAND_SZ и переменные окружения, например %ProgramFiles%
Код:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\File_Verification_Database\Shell\open\command]
@=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,51,00,75,00,69,00,63,00,6b,00,53,00,46,00,56,00,5c,00,\
  51,00,75,00,69,00,63,00,6b,00,53,00,46,00,56,00,2e,00,45,00,58,00,45,00,20,\
  00,22,00,25,00,31,00,22,00,00,00


Wu-Tang 01-01-2012 08:04 1826374

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}"
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{906b0e6e-61ce-11d3-8ee2-0060080a7242}\InProcServer32\: "C:\Program Files\QuickSFV\QSFVShll.dll"
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{906b0e6e-61ce-11d3-8ee2-0060080a7242}\InProcServer32\ThreadingModel: "Apartment"
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{906b0e6e-61ce-11d3-8ee2-0060080a7242}\: "QuickSFV Shell Extension"
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shellex\ContextMenuHandlers\QuickSFV Shell Extension\: "{906b0e6e-61ce-11d3-8ee2-0060080a7242}"
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.CKZ\: "File_Verification_Database"
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.CRC\: "File_Verification_Database"
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.CSV\: "File_Verification_Database"
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.MD5\: "File_Verification_Database"
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.PAR\: "File_Verification_Database"
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.SFV\: "File_Verification_Database"
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\File_Verification_Database\Shell\open\command\: "C:\Program Files\QuickSFV\QuickSFV.EXE "%1""
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\File_Verification_Database\Shell\verify_all\command\: "C:\Program Files\QuickSFV\QuickSFV.EXE DOALL "%1""
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\File_Verification_Database\Shell\verify_all\: "&Verify All"
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\File_Verification_Database\Shell\open\: "&Open"
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\File_Verification_Database\Shell\: "open"
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\File_Verification_Database\DefaultIcon\: "C:\Program Files\QuickSFV\QuickSFV.EXE,0"
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\File_Verification_Database\: "File Verification Database"
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved\{906b0e6e-61ce-11d3-8ee2-0060080a7242}: "QuickSFV Shell Extension"
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ShellCompatibility\Objects\{906b0e6e-61ce-11d3-8ee2-0060080a7242}\CTXMENU_NOVERBS: ""
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\QuickSFV\DisplayName: "QuickSFV (Remove only)"
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\QuickSFV\UninstallString: "C:\Program Files\QuickSFV\QSFVUNST.EXE C:\Program Files\QuickSFV\"


Petya V4sechkin 01-01-2012 08:21 1826377

Цитата:

Цитата Wu-Tang
как так обработать

Сначала либо создать руками, либо командой Reg Add в командной строке.
Потом экспортировать в REG-файл.

apozlevich 01-01-2012 10:52 1826406

Petya V4sechkin, а как они получаются? Может написать какой-нибудь конвертер? На входе - REG_SZ с переменной, на выходе REG_EXPAND_SZ.

Wu-Tang 02-01-2012 03:43 1826728

Petya V4sechkin,
Что-то не совсем понятно, ну вот сверху ключи, я привел, что далее, я должен сделать, с каждым или всю пачку можно конвертнуть?
Все же я не совсем понимаю, как эта процедура делается.
apozlevich,
Да, если бы вы это сделали, то было бы чудесно.

Petya V4sechkin 02-01-2012 08:33 1826749

Wu-Tang, для примера возьмем ключ:
Цитата:

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{906b0e6e-61ce-11d3-8ee2-0060080a7242}\InProcServer32\: "C:\Program Files\QuickSFV\QSFVShll.dll"
Создаете CMD-файл:
Код:

Reg Add HKLM\SOFTWARE\Classes\CLSID\{906b0e6e-61ce-11d3-8ee2-0060080a7242}\InProcServer32 /VE /T REG_EXPAND_SZ /D %%ProgramFiles%%\QuickSFV\QSFVShll.dll /F
Reg Export HKLM\SOFTWARE\Classes\CLSID\{906b0e6e-61ce-11d3-8ee2-0060080a7242}\InProcServer32 Example1.reg

и выполняете.
На выходе получаете Example1.reg
Код:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{906b0e6e-61ce-11d3-8ee2-0060080a7242}\InProcServer32]
@=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,51,00,75,00,69,00,63,00,6b,00,53,00,46,00,56,00,5c,00,\
  51,00,53,00,46,00,56,00,53,00,68,00,6c,00,6c,00,2e,00,64,00,6c,00,6c,00,00,\
  00

Следующий пример:
Цитата:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\QuickSFV\UninstallString: "C:\Program Files\QuickSFV\QSFVUNST.EXE C:\Program Files\QuickSFV\"
CMD-файл:
Код:

Reg Add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\QuickSFV /V UninstallString /T REG_EXPAND_SZ /D "%%ProgramFiles%%\QuickSFV\QSFVUNST.EXE %%ProgramFiles%%\QuickSFV\\" /F
Reg Export HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\QuickSFV Example2.reg

На выходе Example2.reg
Код:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\QuickSFV]
"UninstallString"=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,51,00,75,00,69,00,63,00,6b,00,53,00,46,\
  00,56,00,5c,00,51,00,53,00,46,00,56,00,55,00,4e,00,53,00,54,00,2e,00,45,00,\
  58,00,45,00,20,00,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,51,00,75,00,69,00,63,00,6b,00,53,00,46,00,\
  56,00,5c,00,00,00

Для ознакомления с параметрами команды Reg Add можете почитать:
Код:

Reg Add /?

apozlevich 02-01-2012 10:37 1826773

Petya V4sechkin, а можно простым скриптом
Код:

@echo off
Reg Add %1 /VE /T REG_EXPAND_SZ /D %2 /F
Reg Export %1 %3

(Просто одна команда вместо двух. Использовал ваш код, не проверял, скрипт не "отказоусточив")

Запускается так: script.cmd <ветвь реестра> <параметр> <файл вывода>

Wu-Tang, я имел в виду не конвертер из REG_SZ в REG_EXPAND_SZ, а просто подстановку правильных значений переменных. Хотя сейчас понимаю, что это было бы не совсем правильно. Сегодня займусь конвертером, позже.

Petya V4sechkin 02-01-2012 10:44 1826777

Цитата:

Цитата apozlevich
не проверял

И не заметили разницу между первым и вторым примером.

apozlevich 02-01-2012 11:27 1826792

Petya V4sechkin, это верно :) Но ведь все заработает?
Кстати, подскажите, а как еще можно получить REG_EXPAND_SZ?

Petya V4sechkin 02-01-2012 16:53 1826941

Цитата:

Цитата apozlevich
Но ведь все заработает?

Нет, конечно, для второго примера не заработает.

Цитата:

Цитата apozlevich
как еще можно получить REG_EXPAND_SZ

Руками создать.

apozlevich 03-01-2012 13:58 1827420

Petya V4sechkin, какая разница между первым и вторым примером?

Iska 03-01-2012 18:12 1827597

Цитата:

Цитата apozlevich
Petya V4sechkin, какая разница между первым и вторым примером? »

Значение «По умолчанию» рассматривается как особый случай и задаётся отдельным параметром для «reg.exe». В Вашем примере использован именно данный параметр.

Во втором же примере задаётся значение обычного именованного параметра.

Vadikan 03-01-2012 18:21 1827604

Не вижу смысла в конвертерах каких-то. Либо руками создали и экспортировали, либо REG ADD, как разложил Petya V4sechkin, с последующим экспортом.

Более того, не вижу смысла гонять туда-сюда - без разницы, какой файл выполнять, REG, CMD или оба.
Код:

regedit /s tweak.reg && call tweak.cmd
Аналогичная тема [решено] Создание в реестре расширенного строкового параметра REG_EXPAND_SZ

apozlevich 04-01-2012 16:22 1828248

Собственно, у меня после применения .reg-файла запускается скрипт, который импортирует оставшиеся значения в реестр.

Wu-Tang 05-01-2012 03:47 1828640

Petya V4sechkin,
Переварил вроде.
Есть 2 вопроса: в одном примере вы используете ключ /ve, в другом /v, как узнать когда какой использовать? И в одном - строчка заканчивается одним \, в другом \\. Когда как надо?
apozlevich,
Цитата:

Цитата apozlevich
Reg Add %1 /VE /T REG_EXPAND_SZ /D %2 /F
Reg Export %1 %3 »

Что-то не вкурю, а как правильно делать подстановку в ваш шаблон?
Может все же возьметесь написать конвертер?
Vadikan,
Цитата:

Цитата Vadikan
regedit /s tweak.reg && call tweak.cmd »

А как этим скриптом пользоваться?

apozlevich 05-01-2012 12:27 1828808

Wu-Tang, это не шаблон и не надо туда ничего подставлять.
Цитата:

Цитата apozlevich
Запускается так: script.cmd <ветвь реестра> <параметр> <файл вывода> »

Но сейчас я повнимательней посмотрел на пост Petya V4sechkin и понял, что мой скрипт действительно неправилен. Да, сейчас может займусь конвертером.

Vadikan 05-01-2012 12:31 1828817

Цитата:

Цитата Wu-Tang
А как этим скриптом пользоваться? »

Это зависит от ваших задач. А как вы пользуетесь своим файлом с твиками реестра?

apozlevich 05-01-2012 14:28 1828918

Цитата:

Цитата Vadikan
regedit /s tweak.reg && call tweak.cmd »

Wu-Tang, мне кажется, Vadikan имел в виду то, что из файла tweaks.reg импортируются все значения, кроме REG_EXPAND_SZ, а потом с помощью скрипта tweak.cmd импортируются значения REG_EXPAND_SZ. Скрипт может содержать что-то вроде примеров Petya V4sechkin
Код:

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
Цитата:

Цитата Petya V4sechkin
Для ознакомления с параметрами команды Reg Add можете почитать:
Код:

Reg Add /? »

А писать конвертер я больше не вижу смысла, так как действительно проще сделать импорт значений REG_EXPAND_SZ дополнительным скриптом.

Iska 05-01-2012 14:51 1828937

Я так понимаю, что главная проблема в том, что параметр типа «REG_EXPAND_SZ» представлен в *.reg-файле в нечитабельном виде (набором hex)?!

apozlevich 05-01-2012 15:02 1828949

Iska, скорее всего :). Для меня проблема в том, что я так просто hex не подправлю, если что.

Iska 05-01-2012 21:06 1829198

apozlevich, я обычно для ручной работы подобного рода пользую Far Manager с плагином «RegEditor» (RegEditor — редактор системного реестра). Последний позволяет не только удобно работать с реестром (в том числе — импортировать, экспортировать разделы), но и работать с reg-файлами, как с реестром (именно плагин «RegEditor», но не плагин «Registry Browser»!).

Например…
читать дальше »

На левой панели открыт раздел реестра «HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\CLSID\{450D8FBA-AD25-11D0-98A8-0800361B1103}\DefaultIcon» в плагине «RegEditor»:
Код:

╔═ ...LSID\{450D8FBA-AD25-11D0-98A8-0800361B1103}\DefaultIcon ═╗╔═════════════════════ E:\Песочница\0107 ══════╤════════╤═19:55
║и                Имя                  │Размер│  Дата  │Время║║и                Имя                  │Размер│  Дата  │Время║
║⌂..                                    │ Вверх│        │    ║║⌂..                                    │ Вверх│05.01.12│19:55║
║ (Default)                              │    70│25.09.10│07:26║║                                      │      │        │    ║
║                                        │      │        │    ║║                                      │      │        │    ║
║                                        │      │        │    ║║                                      │      │        │    ║
║                                        │      │        │    ║║                                      │      │        │    ║

Вид при редактировании параметра «По умолчанию» во встроенном редакторе Far Manager'а:
Код:

(Default)                                                          1200  Строка          1/1  Кол 1            37      19:57
%SystemRoot%\SYSTEM32\mydocs.dll,0


Редактирование всего раздела во встроенном редакторе Far Manager'а:
Код:

DefaultIcon                                                        1200  Строка          1/7  Кол 1        0057h      19:58
Windows·Registry·Editor·Version·5.00¶

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\CLSID\{450D8FBA-AD25-11D0-98A8-0800361B1103}\DefaultIcon]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\¶
··00,5c,00,53,00,59,00,53,00,54,00,45,00,4d,00,33,00,32,00,5c,00,6d,00,79,00,\¶
··64,00,6f,00,63,00,73,00,2e,00,64,00,6c,00,6c,00,2c,00,30,00,00,00¶


Пример экспорта раздела «DefaultIcon» на соседнюю, файловую, панель:
Код:

╔══════════════════════ Экспорт ключей/значений ══════════════════════╗
║ Экспорт "DefaultIcon" в:                                            ║
║ E:\Песочница\0107\                                                ↓║
╟───────────────────────────Формат экспорта───────────────────────────╢
║ ( ) файлы REGEDIT4                                                  ║
║ (•) файлы REGEDIT5 (Unicode)                                        ║
║ ( ) Двоичные файлы ("кусты")  [ ] Как подключ                      ║
╟─────────────────────────────────────────────────────────────────────╢
║                          { OK } [ Отмена ]                          ║
╚═════════════════════════════════════════════════════════════════════╝

Внешний вид при редактировании полученного файла реестра в редакторе Far Manager'а:
Код:

E:\Песочница\0107\DefaultIcon.reg                                  1200  Строка          6/7  Кол 1        0020h      19:54
Windows·Registry·Editor·Version·5.00¶

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\CLSID\{450D8FBA-AD25-11D0-98A8-0800361B1103}\DefaultIcon]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\¶
··00,5c,00,53,00,59,00,53,00,54,00,45,00,4d,00,33,00,32,00,5c,00,6d,00,79,00,\¶
··64,00,6f,00,63,00,73,00,2e,00,64,00,6c,00,6c,00,2c,00,30,00,00,00¶


И, наконец, главное — файл реестра можно открыть просто на панели:
Код:

╔═════════ RegEditor ═════════╗
║  Открыть reg-файл на панели ║
╟─────────────────────────────╢
║  Импортировать в реестр    ║
╚═════════════════════════════╝

Левая панель — реальный реестр, правая панель — reg-файл, открытый на панели:
Код:

╔═ ...LSID\{450D8FBA-AD25-11D0-98A8-0800361B1103}\DefaultIcon ═╗╔═ ...{450D8FBA-AD25-11D0-98A8-0800361B1103}\DefaultIcon ═20:10
║и                Имя                  │Размер│  Дата  │Время║║и                Имя                  │Размер│  Дата  │Время║
║⌂..                                    │ Вверх│        │    ║║⌂..                                    │ Вверх│05.01.12│19:59║
║ (Default)                              │    70│25.09.10│07:26║║ (Default)                            │    70│        │    ║
║                                        │      │        │    ║║                                      │      │        │    ║
║                                        │      │        │    ║║                                      │      │        │    ║
║                                        │      │        │    ║║                                      │      │        │    ║

И так же прозрачно редактировать REG_EXPAND_SZ параметр, как будто бы он находился в реестре:
Код:

(Default)                                                          1200  Строка          1/1  Кол 1            37      20:00
%SystemRoot%\SYSTEM32\mydocs.dll,0



apozlevich 05-01-2012 22:41 1829281

Ох.. ниасилил, многабукав. Завтра почитаю. Что-то мне подсказывает, что это будет полезным.
Кстати, знали бы вы, что пришло мне на электронку после такого поста...

Iska 06-01-2012 01:26 1829349

Цитата:

Цитата apozlevich
Кстати, знали бы вы, что пришло мне на электронку после такого поста... »

Ну, так расскажите, будем знать.

apozlevich 06-01-2012 01:29 1829351

читать дальше »
Форум: Автоматическая установка Windows 2000/XP/2003
Тема: [решено] Импорт в реестр параметров, содержащих переменные в значениях (http://forum.oszone.net/newpostinthr...ml?hren=121960
Автор: Iska
Текст сообщения:
===>>>-----------------------------------------------

*apozlevich*, я обычно для ручной работы подобного рода пользую Far Manager с плагином «RegEditor». Последний позволяет не только удобно работать с реестром (в том числе — импортировать, экспортировать разделы), но и работать с reg-файлами, как с реестром (именно плагин «RegEditor», но не плагин «Registry Browser»!).

Например…

На левой панели открыт раздел реестра «HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\CLSID\{450D8FBA-AD25-11D0-98A8-0800361B1103}\DefaultIcon» в плагине «RegEditor»:

Code:
---------
╔═ ...LSID\{450D8FBA-AD25-11D0-98A8-0800361B1103}\DefaultIcon ═╗╔═════════════════════ E:\Песочница\0107 ══════╤════════╤═19:55
║и Имя │Размер│ Дата │Время║║и Имя │Размер│ Дата │Время║
║⌂.. │ Вверх│ │ ║║⌂.. │ Вверх│05.01.12│19:55║
║ (Default) │ 70│25.09.10│07:26║║ │ │ │ ║
║ │ │ │ ║║ │ │ │ ║
║ │ │ │ ║║ │ │ │ ║
║ │ │ │ ║║ │ │ │ ║

---------
Вид при редактировании параметра «По умолчанию» во встроенном редакторе Far Manager'а:

Code:
---------
(Default) 1200 Строка 1/1 Кол 1 37 19:57
%SystemRoot%\SYSTEM32\mydocs.dll,0


---------
Редактирование всего раздела во встроенном редакторе Far Manager'а:

Code:
---------
DefaultIcon 1200 Строка 1/7 Кол 1 0057h 19:58
Windows·Registry·Editor·Version·5.00¶

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\CLSID\{450D8FBA-AD25-11D0-98A8-0800361B1103}\DefaultIcon]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\¶
··00,5c,00,53,00,59,00,53,00,54,00,45,00,4d,00,33,00,32,00,5c,00,6d,00,79,00,\¶
··64,00,6f,00,63,00,73,00,2e,00,64,00,6c,00,6c,00,2c,00,30,00,00,00¶


---------
Пример экспорта раздела «DefaultIcon» на соседнюю, файловую, панель:

Code:
---------
╔══════════════════════ Экспорт ключей/значений ══════════════════════╗
║ Экспорт "DefaultIcon" в: ║
║ E:\Песочница\0107\ ↓║
╟───────────────────────────Формат экспорта───────────────────────────╢
║ ( ) файлы REGEDIT4 ║
║ (•) файлы REGEDIT5 (Unicode) ║
║ ( ) Двоичные файлы ("кусты") [ ] Как подключ ║
╟─────────────────────────────────────────────────────────────────────╢
║ { OK } [ Отмена ] ║
╚═════════════════════════════════════════════════════════════════════╝
---------
Внешний вид при редактировании полученного файла реестра в редакторе Far Manager'а:

Code:
---------
E:\Песочница\0107\DefaultIcon.reg 1200 Строка 6/7 Кол 1 0020h 19:54
Windows·Registry·Editor·Version·5.00¶

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\CLSID\{450D8FBA-AD25-11D0-98A8-0800361B1103}\DefaultIcon]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\¶
··00,5c,00,53,00,59,00,53,00,54,00,45,00,4d,00,33,00,32,00,5c,00,6d,00,79,00,\¶
··64,00,6f,00,63,00,73,00,2e,00,64,00,6c,00,6c,00,2c,00,30,00,00,00¶


---------
И, наконец, главное — файл реестра *можно открыть просто на панели*:

Code:
---------
╔═════════ RegEditor ═════════╗
║ Открыть reg-файл на панели ║
╟─────────────────────────────╢
║ Импортировать в реестр ║
╚═════════════════════════════╝
---------
и так же прозрачно редактировать REG_EXPAND_SZ параметр, как будто бы он находился в реестре:

Code:
---------
(Default) 1200 Строка 1/1 Кол 1 37 20:00
%SystemRoot%\SYSTEM32\mydocs.dll,0


---------


Только все рамочки не символами а их кодом.. Хм.. Как это правильно называется... В общем, если вам так интересно, могу запостить скриншот. Но все же, это оффтопик.

Wu-Tang 06-01-2012 01:32 1829356

apozlevich,
Цитата:

Цитата apozlevich
это не шаблон и не надо туда ничего подставлять. »

А что же с ним тогда делать, я вобще не понял как его юзать.
Vadikan,
Задача-автоматизировано конвертнуть ряд ключей, содержащих пути.
apozlevich,
Цитата:

Цитата apozlevich
А писать конвертер я больше не вижу смысла, так как действительно проще сделать импорт значений REG_EXPAND_SZ дополнительным скриптом. »

Если таких ключей 50/100, обрабатывать каждый ключ индивидуально, я считаю совсем не проще.

apozlevich 06-01-2012 13:06 1829516

Wu-Tang, да забудь про этот скрипт, он не панацея и работает только в одном случае из ста. Тем более, это просто команды Petya V4sechkin, объединенные в одну. Забей.

Цитата:

Цитата Wu-Tang
Если таких ключей 50/100, обрабатывать каждый ключ индивидуально, я считаю совсем не проще. »

Обрабатывать все равно придется. Самый простой вариант - изучить команду
Код:

REG ADD
и сделать скрипт, который вызывать после импорта .reg-файла. Тогда импорт .reg-файла будет производится такой командой:
Цитата:

Цитата Vadikan
Код:

regedit /s tweak.reg && call tweak.cmd »

(Все что стоит до "&&" это импорт .reg-файла, а все, что стоит после - запуск скрипта.) Просто создай текстовый файл, переименуй его в tweak.cmd, напиши первую строчку
Код:

@echo off
И дальше
Код:

reg add <ветвь реестра> /v <имя значения> /t REG_EXPAND_SZ /d <значение> /f
Ветвь реестра - это, как тебе уже, наверное, известно, что-то типа "HKLM\Software\Microsoft\Windows\".
В "Значении" тебе надо указать путь, используя переменную среды (про них рассказывается здесь, там же есть насчет импорта значений реестра таким способом).

Если тебе нужно импортировать "Значение по умолчанию", что, по моему опыту, бывает редко, тебе нужно использовать код
Код:

reg add <ветвь реестра> /ve /t REG_EXPAND_SZ /d <значение> /f

Wu-Tang 07-01-2012 05:27 1830053

apozlevich,
У меня насчет ключей остался вопрос открытым - http://forum.oszone.net/post-1828640-16.html я его здесь задавал Petya V4sechkin
Цитата:

Цитата apozlevich
Код:
reg add <ветвь реестра> /v <имя значения> /t REG_EXPAND_SZ /d <значение> /f »

Те сначала обработать таким образом каждый ключ, затем использовать скрипт?
Ты не мог бы пример привести, чтоб мне наглядно было понятно, вот, например, ключи:
Код:

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\File_Verification_Database\DefaultIcon]
@="C:\\Program Files\\QuickSFV\\QuickSFV.EXE,0"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\File_Verification_Database\Shell\open\command]
@="C:\\Program Files\\QuickSFV\\QuickSFV.EXE \"%1\""

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Applications\QuickSFV.EXE\shell\open\command]
@="C:\\Program Files\\QuickSFV\\QuickSFV.EXE \\\"%1\\\""

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Applications\QuickSFV.EXE\shell\verify_all\command]
@="C:\\Program Files\\QuickSFV\\QuickSFV.EXE DOALL \\\"%1\\\""

[HKEY_CLASSES_ROOT\CLSID\{906b0e6e-61ce-11d3-8ee2-0060080a7242}\InProcServer32]
@="C:\\Program Files\\QuickSFV\\QSFVShll.dll"
"ThreadingModel"="Apartment"

Как будет должно забито в рег файле и как в скрипте.
Заранее спасибо.

apozlevich 07-01-2012 13:35 1830159

Цитата:

Цитата Wu-Tang
У меня насчет ключей остался вопрос открытым - http://forum.oszone.net/post-1828640-16.html я его здесь задавал Petya V4sechkin »

Цитата:

Цитата Iska
Значение «По умолчанию» рассматривается как особый случай и задаётся отдельным параметром для «reg.exe».
Во втором же примере задаётся значение обычного именованного параметра. »


Цитата:

Цитата Wu-Tang
Как будет должно забито в рег файле и как в скрипте. »

Может, "как должен быть забит рег файл в скрипт"?
читать дальше »
Код:

@echo off
reg add "HKLM\SOFTWARE\Classes\File_Verification_Database\DefaultIcon" /ve /t REG_EXPAND_SZ /d "%ProgramFiles%\QuickSFV\QuickSFV.EXE,0" /f
reg add "HKLM\SOFTWARE\Classes\File_Verification_Database\Shell\open\command" /ve /t REG_EXPAND_SZ /d "%ProgramFiles%\QuickSFV\QuickSFV.EXE ^%1" /f
reg add "HKLM\SOFTWARE\Classes\Applications\QuickSFV.EXE\shell\open\command" /ve /t REG_EXPAND_SZ /d "%ProgramFiles%\QuickSFV\QuickSFV.EXE \^%1\" /f
reg add "HKLM\SOFTWARE\Classes\Applications\QuickSFV.EXE\shell\verify_all\command" /ve /t REG_EXPAND_SZ /d "%ProgramFiles%\QuickSFV\QuickSFV.EXE DOALL \^%1\" /f
reg add "HKCR\CLSID\{906b0e6e-61ce-11d3-8ee2-0060080a7242}\InProcServer32" /ve /t REG_EXPAND_SZ /d "%ProgramFiles%\QuickSFV\QSFVShll.dll" /f
reg add "HKCR\CLSID\{906b0e6e-61ce-11d3-8ee2-0060080a7242}\InProcServer32" /v "ThreadingModel" /t REG_EXPAND_SZ /d "Apartment" /f


Wu-Tang 08-01-2012 01:47 1830675

apozlevich,
Я всеже понять не могу когда использовать /ve, а когда /v?

apozlevich 08-01-2012 13:23 1830828

/ve используется при "параметрах по умолчанию",
Код:

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\File_Verification_Database\DefaultIcon]
@="C:\\Program Files\\QuickSFV\\QuickSFV.EXE,0"


apozlevich 08-01-2012 15:12 1830897

Хм... Сейчас копаюсь в одном файле твиков одного хорошего форумчанина, такие строки
Код:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System]
"InstallTheme"="%WinDir%\\Resources\\Themes\\OpusOS.Theme"
"InstallVisualStyle"="%WinDir%\\Resources\\Themes\\OpusOS\\OpusOS.msstyles"

ведь будут работать?

Wu-Tang 08-01-2012 19:12 1831098

apozlevich,
Вроде бы такой вариант не будет срабатывать.

apozlevich 08-01-2012 19:58 1831122

А если это написал simplix? Он конечно не Чак Норрис, но вроде знает, что пишет.

Wu-Tang 09-01-2012 00:03 1831274

apozlevich,
В любом случае лучше протестить самостоятельно...

Wu-Tang 10-01-2012 08:59 1832271

apozlevich,
Ты не пробовал еще пока?

apozlevich 10-01-2012 09:36 1832286

Нет, еще не на чем, но сегодня я узнаю точно (WinXP Simplix Edition стоит в театре, где я техник. Во-первых убью того, кто его там поставил, а во-вторых, спрошу, работало ли это.)


Время: 00:17.

Время: 00:17.
© OSzone.net 2001-