none
Добавить 16 ричное число в реестр RRS feed

  • Вопрос

  • Здравствуйте. Скажите как можно добавить 16ричное число в реестр программно ?

    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\OID\EncodingType 0\CryptDllFindOIDInfo\1.2.643.100.1!5]
    "ExtraInfo"=hex:03,00,00,00,00,00,00,00
    2 июля 2015 г. 12:15

Ответы

  • Т.е. как и ожидалось у вас нет никаких чисел, есть только текст.

    В данном случае вам ничего делать надо так как текст в вашем примере судя по всему записан в формате экспорта реестра. Чтоб добавить его в реестр просто запустите 'regedit /s файл' и все добавится.

    Если хотите сделать все самостоятельно то конкретно строка в байнари преобразовыеывается так:

    1. Считать строку в память из файла:  "03,00,00,00,00,00,00,00"

    2. Разбить строку на отдельные числа: "03" "00" ...

    3. Преобразовать каждое из этих чисел в байт исползуя Byte.Parse()

    4. Записать все эти байты в массив байтов.

    5. Передать массив байтов Registry.SetValue().


    This posting is provided "AS IS" with no warranties, and confers no rights.

    • Помечено в качестве ответа Timur2008 2 июля 2015 г. 16:40
    2 июля 2015 г. 16:26
    Модератор

Все ответы

  • Примерно так:

    reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\OID\EncodingType 0\CryptDllFindOIDInfo\1.2.643.100.1!5" /v "ExtraInfo" /t REG_BINARY /d 0300000000000000

    Естессно это делается от админа.

    • Изменено xjomanx 2 июля 2015 г. 14:30
    2 июля 2015 г. 14:29
  • хмм, т.е всеже это 16ричное число будет типа binary? Просто я ищу способ это сделать с помощью метода 

    Registry.SetValue??

    2 июля 2015 г. 15:12
  • Опишите на чем вы программируйте и какого типа должно быть значение в реестере. Так же откуда берется данно число и в каком виде.

    Что до чисел то в компюьтерах они практически всегда двоичные. Конечно при вводе/выводе чиска могут быть представлены в любом удобном виде.


    This posting is provided "AS IS" with no warranties, and confers no rights.

    2 июля 2015 г. 15:25
    Модератор
  • Мне дали файлик текстовый , похоже что там ветки экспортированные из реестра и сказали что нужно на C# сделать чтобы данные записывались в реестр и хранились подобным образом. Вот я и не могу понять как они такое сделали. Это вроде не стринг и не инт и дворд, а hex типа данных вроде нет в регедите ?!?

    апдэйт

    Да похоже так и есть , это binary. А как преобразовать строку в binary ?

    • Изменено Timur2008 2 июля 2015 г. 15:41
    2 июля 2015 г. 15:33
  • Т.е. как и ожидалось у вас нет никаких чисел, есть только текст.

    В данном случае вам ничего делать надо так как текст в вашем примере судя по всему записан в формате экспорта реестра. Чтоб добавить его в реестр просто запустите 'regedit /s файл' и все добавится.

    Если хотите сделать все самостоятельно то конкретно строка в байнари преобразовыеывается так:

    1. Считать строку в память из файла:  "03,00,00,00,00,00,00,00"

    2. Разбить строку на отдельные числа: "03" "00" ...

    3. Преобразовать каждое из этих чисел в байт исползуя Byte.Parse()

    4. Записать все эти байты в массив байтов.

    5. Передать массив байтов Registry.SetValue().


    This posting is provided "AS IS" with no warranties, and confers no rights.

    • Помечено в качестве ответа Timur2008 2 июля 2015 г. 16:40
    2 июля 2015 г. 16:26
    Модератор
  • Спасибо за помощь!!! попробую
    2 июля 2015 г. 16:43