Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Ветеран


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

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


khasia, примерно ясно. Вот как он выглядит в реальности:
Скрытый текст

И, видимо, поэтому на этапе экспорта C-шные функции работы со строкой воспринимают эти данные как свои escape-последовательности (конец строки в формате Windows из пары символов CrLf) и пишут их в экспортируемый файл. Обратного же преобразования в escape-последовательности, естественно, не производится.

Предлагаю два варианта:

1. Использовать формат кустов — уже знакомый Вам:
Код: Выделить весь код
reg.exe save "Путь к подразделу" "Файл.hiv"
для экспорта куста и:
Код: Выделить весь код
reg.exe restore "Путь к подразделу" "Файл.hiv"
для импорта. Не так наглядно, но работает.

2. Учитывая тот факт, что по стандарту xml должен быть индифферентен к пробельным символам (теоретически должен, на практике же всё зависит от конкретного парсера xml), попробовать в полученном путём экспорта файле реестра .reg (reg.exe export) «ручками» убрать все концы строк, дабы получилась одна строка, наподобие (на путь к подразделу не смотрите — это пример, у Вас путь будет свой):
Код: Выделить весь код
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Sample]
"LicenseCertificate"="<?xml version=\"1.0\" encoding=\"utf-16\"?><LicenseCertificate version=\"2\" publisher=\"Spoon\">    <LicenseType>Retail</LicenseType>    <LicenseModel>Site</LicenseModel>    <ProductCode>ALL</ProductCode>    <LicenseeName>LineZer0</LicenseeName>    <Account>LineZer0</Account>    <Signature>        b741fb7157f38cbdfbe9e41faa55d72b        aba67d350ec7f2ba38236a01e06476f1        f4d6e184a49ce6716162935d2768aed3        e583afcf7f8b59be415c57898dca0d67        289c342633b590bb2b342f97e92872e8        6de1434c9e84d6757638786e5abf24cd        e6394692e1012b93e517b27d38721c94        dac5c0964a6d6b63826e314dd0dbe41d    </Signature></LicenseCertificate>"
Затем сделайте резервную копию в виде экспорта куста реестра путём вышеприведённой команды reg.exe save …, затем попробуйте импортировать отредактированный файл реестра .reg. Затем попробуйте запустить приложение/приложения, которые работают с данным параметром реестра, и посмотреть, всё ли будет в порядке. Если всё будет нормально — значит второй путь также годится к использованию.


Есть и ещё один вариант, связанный опять же с ручной подстановкой \r\n в экспортированный файл реестра, но есть подозрение, что при попытке импорта наступим на те же грабли. Посему пока даже не проверял сие.
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:55, 04-11-2016 | #15