[решено] Импорт в реестр параметров, содержащих переменные в значениях

Аватара пользователя
Petya V4sechkin

[решено] Импорт в реестр параметров, содержащих переменные в значениях

Сообщение Petya V4sechkin »

Привет

Не подскажите, как сделать, путь к файлу в ключе реестра, переменным.

Например:



Код:

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

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\File_Verification_Database\Shell\open\command\: "C:\Program Files\QuickSFV\QuickSFV.EXE "%1""
Аватара пользователя
apozlevich

Re: [решено] Импорт в реестр параметров, содержащих переменные в значениях

Сообщение apozlevich »

Iska, скорее всего Изображение. Для меня проблема в том, что я так просто hex не подправлю, если что.
Аватара пользователя
apozlevich

Re: [решено] Импорт в реестр параметров, содержащих переменные в значениях

Сообщение apozlevich »

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



Код:

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

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\File_Verification_Database\DefaultIcon]
@="C:\\Program Files\\QuickSFV\\QuickSFV.EXE,0"
Аватара пользователя
Petya V4sechkin

Re: [решено] Импорт в реестр параметров, содержащих переменные в значениях

Сообщение Petya V4sechkin »

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

Re: [решено] Импорт в реестр параметров, содержащих переменные в значениях

Сообщение Wu-Tang »

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

Re: [решено] Импорт в реестр параметров, содержащих переменные в значениях

Сообщение Petya V4sechkin »

Цитата Wu-Tang:



как так обработать



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

Потом экспортировать в REG-файл.
Аватара пользователя
apozlevich

Re: [решено] Импорт в реестр параметров, содержащих переменные в значениях

Сообщение apozlevich »

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

Re: [решено] Импорт в реестр параметров, содержащих переменные в значениях

Сообщение Petya V4sechkin »

Petya V4sechkin,

Что-то не совсем понятно, ну вот сверху ключи, я привел, что далее, я должен сделать, с каждым или всю пачку можно конвертнуть?

Все же я не совсем понимаю, как эта процедура делается.

apozlevich,

Да, если бы вы это сделали, то было бы чудесно.
Аватара пользователя
Petya V4sechkin

Re: [решено] Импорт в реестр параметров, содержащих переменные в значениях

Сообщение Petya V4sechkin »

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[/i]



Код:

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

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[/i]



Код:

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

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

Re: [решено] Импорт в реестр параметров, содержащих переменные в значениях

Сообщение apozlevich »

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, а просто подстановку правильных значений переменных. Хотя сейчас понимаю, что это было бы не совсем правильно. Сегодня займусь конвертером, позже.
Ответить

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