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

Показать сообщение отдельно
MKN MKN вне форума

Ветеран


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

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


И у меня вопрос по поводу записи бинарных значений в реестр.

Запись в реестр значения этого рабочего reg-файла :
Код: Выделить весь код
[HKEY_CURRENT_USER\Software\ACD Systems\ACDSee Pro\40\en\Settings\Browser\BCGPDockManager--1]
"DockingCBAndSliders"=hex:00,00,00,00,0b,00,00,00,00,00,00,00,00,20,00,00,00,\
  00,00,00,ff,ff,ff,ff,ff,ff,ff,ff,00,00,00,00,00,00,00,00,04,00,00,00,04,00,\
  00,00,00,00,00,00,01,00,00,00,04,00,00,00,01,00,00,00,00,00,00,00,00,00,00,\
  00,88,56,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,00,00,00,\
  88,56,00,00,01,00,00,00,88,56,00,00,00,00,00,00,00,80,00,00,00,00,00,00,ff,\
  ff,ff,ff,ff,ff,ff,ff,00,00,00,00,00,00,00,00,04,00,00,00,04,00,00,00,00,00,\
  00,00,01,00,00,00,04,00,00,00,01,00,00,00,00,00,00,00,00,00,00,00,d8,07,00,\
  00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,00,00,00,d8,07,00,00,\
  01,00,00,00,d8,07,00,00,00,00,00,00,00,40,00,00,00,00,00,00,ff,ff,ff,ff,ff,\
  ff,ff,ff,b2,03,00,00,37,00,00,00,b6,03,00,00,b1,03,00,00,00,00,00,00,02,00,\
  00,10,04,00,00,00,01,00,00,00,00,00,00,00,00,00,00,00,ff,ff,ff,ff,04,00,00,\
  00,d2,07,00,00,cf,07,00,00,d3,07,00,00,d7,07,00,00,ff,ff,02,00,14,00,43,41,\
  43,44,54,61,62,62,65,64,43,6f,6e,74,72,6f,6c,42,61,72,00,40,00,00,00,00,00,\
  00,bb,03,00,00,56,00,00,00,05,05,00,00,cd,03,00,00,b6,03,00,00,37,00,00,00,\
  00,05,00,00,b1,03,00,00,00,00,00,00,01,00,00,00,40,41,00,46,04,00,00,00,ff,\
  fe,ff,08,4f,00,72,00,67,00,61,00,6e,00,69,00,7a,00,65,00,00,00,00,00,d2,07,\
  00,00,01,00,00,00,ff,ff,ff,ff,ff,ff,ff,ff,ff,fe,ff,09,54,00,61,00,73,00,6b,\
  00,20,00,50,00,61,00,6e,00,65,00,00,00,00,00,cf,07,00,00,01,00,00,00,ff,ff,\
  ff,ff,ff,ff,ff,ff,ff,fe,ff,0a,50,00,72,00,6f,00,70,00,65,00,72,00,74,00,69,\
  00,65,00,73,00,00,00,00,00,d3,07,00,00,01,00,00,00,ff,ff,ff,ff,ff,ff,ff,ff,\
  ff,fe,ff,06,53,00,65,00,61,00,72,00,63,00,68,00,00,00,00,00,d7,07,00,00,01,\
  00,00,00,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,00,00,00,00,00,00,00,00,00,00,\
  00,00,00,00,00,00,00,00,00,00,01,00,00,00,ff,ff,ff,ff,d2,07,00,00,01,00,00,\
  00,ff,ff,ff,ff,d2,07,00,00,00,00,00,00,00,10,00,00,01,00,00,00,ff,ff,ff,ff,\
  ff,ff,ff,ff,e2,00,00,00,37,00,00,00,e6,00,00,00,ae,03,00,00,01,00,00,00,02,\
  00,00,10,04,00,00,00,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
  00,00,00,00,00,00,01,00,00,00,ff,ff,ff,ff,04,00,00,00,d1,07,00,00,d5,07,00,\
  00,cd,07,00,00,ce,07,00,00,01,80,00,10,00,00,01,00,00,00,05,00,00,00,56,00,\
  00,00,e7,00,00,00,12,02,00,00,00,00,00,00,37,00,00,00,e2,00,00,00,f3,01,00,\
  00,00,00,00,00,01,00,00,00,40,14,00,56,04,00,00,00,ff,fe,ff,07,46,00,6f,00,\
  6c,00,64,00,65,00,72,00,73,00,01,00,00,00,d1,07,00,00,01,00,00,00,ff,ff,ff,\
  ff,ff,ff,ff,ff,ff,fe,ff,08,43,00,61,00,6c,00,65,00,6e,00,64,00,61,00,72,00,\
  01,00,00,00,d5,07,00,00,01,00,00,00,ff,ff,ff,ff,ff,ff,ff,ff,ff,fe,ff,09,46,\
  00,61,00,76,00,6f,00,72,00,69,00,74,00,65,00,73,00,01,00,00,00,cd,07,00,00,\
  01,00,00,00,ff,ff,ff,ff,ff,ff,ff,ff,ff,fe,ff,0e,50,00,72,00,69,00,76,00,61,\
  00,74,00,65,00,20,00,46,00,6f,00,6c,00,64,00,65,00,72,00,00,00,00,00,ce,07,\
  00,00,01,00,00,00,ff,ff,ff,ff,ff,ff,ff,ff,00,00,00,00,00,00,00,00,d6,07,00,\
  00,01,00,00,00,00,00,00,00,01,00,00,00,01,00,00,00,ff,ff,ff,ff,00,00,00,00,\
  f3,01,00,00,e2,00,00,00,f7,01,00,00,01,00,00,00,01,00,00,10,04,00,00,00,00,\
  00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,02,00,\
  00,00,ff,ff,ff,ff,d1,07,00,00,d6,07,00,00,01,00,00,00,d6,07,00,00,01,00,00,\
  00,ff,ff,ff,ff,d1,07,00,00,00,00,00,00,00,80,00,00,00,00,00,00,ff,ff,ff,ff,\
  ff,ff,ff,ff,00,00,00,00,02,00,00,00,04,00,00,00,06,00,00,00,00,00,00,00,01,\
  00,00,00,04,00,00,00,01,00,00,00,00,00,00,00,00,00,00,00,d0,07,00,00,00,00,\
  00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,00,00,00,d0,07,00,00,01,00,00,\
  00,d0,07,00,00,00,00,00,00,00,00,00,00,00,00,00,00
необходимо реализовать посредством NSIS

Классический способ записи WriteRegBin [root_key] [subkey] [key_name] [valuedata] - почему то не срабатывает... Может значение слишком велико по объёму ?

Пробую Registry плагин :
Код: Выделить весь код
Name "Bin"
OutFile testbin.exe

!include "Registry.nsh"

Section 

${registry::StrToHex} "00,00,00,00,0b,00,00,00,00,00,00,00,00,20,00,00,00,\
  00,00,00,ff,ff,ff,ff,ff,ff,ff,ff,00,00,00,00,00,00,00,00,04,00,00,00,04,00,\
  00,00,00,00,00,00,01,00,00,00,04,00,00,00,01,00,00,00,00,00,00,00,00,00,00,\
  00,88,56,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,00,00,00,\
  88,56,00,00,01,00,00,00,88,56,00,00,00,00,00,00,00,80,00,00,00,00,00,00,ff,\
  ff,ff,ff,ff,ff,ff,ff,00,00,00,00,00,00,00,00,04,00,00,00,04,00,00,00,00,00,\
  00,00,01,00,00,00,04,00,00,00,01,00,00,00,00,00,00,00,00,00,00,00,d8,07,00,\
  00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,00,00,00,d8,07,00,00,\
  01,00,00,00,d8,07,00,00,00,00,00,00,00,40,00,00,00,00,00,00,ff,ff,ff,ff,ff,\
  ff,ff,ff,b2,03,00,00,37,00,00,00,b6,03,00,00,b1,03,00,00,00,00,00,00,02,00,\
  00,10,04,00,00,00,01,00,00,00,00,00,00,00,00,00,00,00,ff,ff,ff,ff,04,00,00,\
  00,d2,07,00,00,cf,07,00,00,d3,07,00,00,d7,07,00,00,ff,ff,02,00,14,00,43,41,\
  43,44,54,61,62,62,65,64,43,6f,6e,74,72,6f,6c,42,61,72,00,40,00,00,00,00,00,\
  00,bb,03,00,00,56,00,00,00,05,05,00,00,cd,03,00,00,b6,03,00,00,37,00,00,00,\
  00,05,00,00,b1,03,00,00,00,00,00,00,01,00,00,00,40,41,00,46,04,00,00,00,ff,\
  fe,ff,08,4f,00,72,00,67,00,61,00,6e,00,69,00,7a,00,65,00,00,00,00,00,d2,07,\
  00,00,01,00,00,00,ff,ff,ff,ff,ff,ff,ff,ff,ff,fe,ff,09,54,00,61,00,73,00,6b,\
  00,20,00,50,00,61,00,6e,00,65,00,00,00,00,00,cf,07,00,00,01,00,00,00,ff,ff,\
  ff,ff,ff,ff,ff,ff,ff,fe,ff,0a,50,00,72,00,6f,00,70,00,65,00,72,00,74,00,69,\
  00,65,00,73,00,00,00,00,00,d3,07,00,00,01,00,00,00,ff,ff,ff,ff,ff,ff,ff,ff,\
  ff,fe,ff,06,53,00,65,00,61,00,72,00,63,00,68,00,00,00,00,00,d7,07,00,00,01,\
  00,00,00,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,ff,00,00,00,00,00,00,00,00,00,00,\
  00,00,00,00,00,00,00,00,00,00,01,00,00,00,ff,ff,ff,ff,d2,07,00,00,01,00,00,\
  00,ff,ff,ff,ff,d2,07,00,00,00,00,00,00,00,10,00,00,01,00,00,00,ff,ff,ff,ff,\
  ff,ff,ff,ff,e2,00,00,00,37,00,00,00,e6,00,00,00,ae,03,00,00,01,00,00,00,02,\
  00,00,10,04,00,00,00,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
  00,00,00,00,00,00,01,00,00,00,ff,ff,ff,ff,04,00,00,00,d1,07,00,00,d5,07,00,\
  00,cd,07,00,00,ce,07,00,00,01,80,00,10,00,00,01,00,00,00,05,00,00,00,56,00,\
  00,00,e7,00,00,00,12,02,00,00,00,00,00,00,37,00,00,00,e2,00,00,00,f3,01,00,\
  00,00,00,00,00,01,00,00,00,40,14,00,56,04,00,00,00,ff,fe,ff,07,46,00,6f,00,\
  6c,00,64,00,65,00,72,00,73,00,01,00,00,00,d1,07,00,00,01,00,00,00,ff,ff,ff,\
  ff,ff,ff,ff,ff,ff,fe,ff,08,43,00,61,00,6c,00,65,00,6e,00,64,00,61,00,72,00,\
  01,00,00,00,d5,07,00,00,01,00,00,00,ff,ff,ff,ff,ff,ff,ff,ff,ff,fe,ff,09,46,\
  00,61,00,76,00,6f,00,72,00,69,00,74,00,65,00,73,00,01,00,00,00,cd,07,00,00,\
  01,00,00,00,ff,ff,ff,ff,ff,ff,ff,ff,ff,fe,ff,0e,50,00,72,00,69,00,76,00,61,\
  00,74,00,65,00,20,00,46,00,6f,00,6c,00,64,00,65,00,72,00,00,00,00,00,ce,07,\
  00,00,01,00,00,00,ff,ff,ff,ff,ff,ff,ff,ff,00,00,00,00,00,00,00,00,d6,07,00,\
  00,01,00,00,00,00,00,00,00,01,00,00,00,01,00,00,00,ff,ff,ff,ff,00,00,00,00,\
  f3,01,00,00,e2,00,00,00,f7,01,00,00,01,00,00,00,01,00,00,10,04,00,00,00,00,\
  00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,02,00,\
  00,00,ff,ff,ff,ff,d1,07,00,00,d6,07,00,00,01,00,00,00,d6,07,00,00,01,00,00,\
  00,ff,ff,ff,ff,d1,07,00,00,00,00,00,00,00,80,00,00,00,00,00,00,ff,ff,ff,ff,\
  ff,ff,ff,ff,00,00,00,00,02,00,00,00,04,00,00,00,06,00,00,00,00,00,00,00,01,\
  00,00,00,04,00,00,00,01,00,00,00,00,00,00,00,00,00,00,00,d0,07,00,00,00,00,\
  00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,00,00,00,d0,07,00,00,01,00,00,\
  00,d0,07,00,00,00,00,00,00,00,00,00,00,00,00,00,00" $0

  ${registry::Write} "HKCU\Software\ACD Systems\ACDSee Pro\40\en\Settings\Browser\BCGPDockManager--1" "DockingCBAndSliders" "$0" "REG_BINARY" $R0

MessageBox MB_OK "registry::StrToHex$\n$\n\
К сожалению, при данном варианте скрипта,  в реестр записалось значение, $\n$\n\
не соответствующее значению исходного REG-файла..."
SectionEnd
Значение записывается, но... не верное ! Соответственно нет результата. (точнее, происходит ряд изменений совершенно не нужных...) В чём я ошибся ?

ps Проверяю, экспортируя из реестра, ключ записанный посредством NSIS. Значение в нём другое, отличное от исходного рабочего reg-файла... Что за чертовщина ?!

Последний раз редактировалось MKN, 07-04-2011 в 10:56.


Отправлено: 10:44, 07-04-2011 | #1037