145 / 100 / 6
Регистрация: 11.03.2010
Сообщений: 477

Registry - Binary value

31.03.2011, 13:51. Показов 3881. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток уважаемые програмисты!

Есть у меня задача, в рамках которой нужно заменять значение в реестре, значение это в реестре хранится в НЕХ виде.

И вот я столкнулся с проблемой, если експортировать этот ключик в файл, то я получаю запись в НЕХ виде:

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Windows Registry Editor Version 5.00
 
[HKEY_CURRENT_USER\Printers\DevModePerUser]
"KONICA MINOLTA"=hex:4b,00,4f,00,4e,00,49,00,43,00,41,00,20,00,4d,00,49,00,4e,\
  00,4f,00,4c,00,54,00,41,00,00,00,32,00,29,00,00,00,41,00,20,00,4d,00,49,00,\
  4e,00,4f,00,4c,00,54,00,41,00,2c,00,4c,00,6f,00,63,00,00,00,01,04,00,01,dc,\
  00,60,29,0f,3f,00,02,01,00,09,00,9a,0b,34,08,64,00,01,00,07,00,58,02,02,00,\
  01,00,58,02,01,00,00,00,41,00,34,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,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,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,00,00,01,00,00,00,02,00,\
  00,00,01,01,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,58,29,00,00,53,50,4c,58,01,00,00,00,58,29,00,00,49,4f,50,54,\
  48,4d,00,00,00,00,00,00,00,00,00,00,50,43,4c,58,4c,00,00,00,00,00,00,00,00,\
  00,00,00,00,00,00,00,00,00,00,00,0c,f3,67,06,00,00,00,00,01,00,09,00,34,08,\
А если пробовать записать в реестр через
C++
1
2
3
4
char *buffer=new char;
regu->OpenKey("Printers\\DevModePerUser",true);
  buffer = "4b,00,4f,00,4e,00,49,00,43,00,41,00,20,00,4d,00,49,00,4e,";
    regu->WriteBinaryData(l->Strings[i],buffer,strlen(buffer));
То вот мое выражение еще раз преобразуется в НЕХ, и в ключ вносится бред.
вот и вопрос, как можно записать в ключ сразу НЕХ, или же как можно мой полученный НЕХ, преобразовать в строку, и ее занести(тут меня терзают сомнения относительно сохранности и целостности преобразований)?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
31.03.2011, 13:51
Ответы с готовыми решениями:

Достать значение с object(Joomla\Registry\Registry)
Добрый день ув. пользователи ! Подскажите пожалуйста,как достать свойство body_background из обьекта ? $app =...

Registry, creating registry sets
Помогите не знаю как сделать что бы создавало путь....creating registry sets если можно в коде, пожалуйста

"_10.binary.binary()" должен объявлять тело, т.к. он не помечен модификатором abstract, extern, или partial
Подскажите, что это за ошибка: "_10.binary.binary()" должен объявлять тело, т.к. он не помечен модификатором abstract, extern, или...

12
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
31.03.2011, 14:55
Прочитай аот здесь вот я думаю ты поймёшь

http://cprime.110mb.com/lesson/0110/10-6.php
1
145 / 100 / 6
Регистрация: 11.03.2010
Сообщений: 477
01.04.2011, 15:27  [ТС]
пасиб за статейку, направился в нужном направлении

Добавлено через 21 час 50 минут
Вышел у меня вот такой вот кусок кода.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
void __fastcall TForm2::Button3Click(TObject *Sender)
{
 
 HKEY hKey = NULL;
 TCHAR *sKey = new TCHAR;
 sKey = "Printers\\DevModePerUser";
LONG rc=RegOpenKeyEx(HKEY_CURRENT_USER,sKey,0,KEY_SET_VALUE,&hKey);
BYTE pVal[2048] = {4b,00,4f,00,4e,00,49,00,43,00,41,00,20,00,4d,00,49,00,4e,00,4f,00,4c,00,54,00,41,00,00,00,32,00,29,00,00,00,41,00,20,00,4d,00,49,00,4e,00,4f,00,4c,00,54,00,41,00,2c,00,4c,00,6f,00,63,00,00,00,01,04,00,01,dc,00,60,29,0f,3f,00,02,01,00,09,00,9a,0b,34,08,64,00,01,00,07,00,58,02,02,00,01,00,58,02,01,00,00,00,41,00,34,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,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,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,00,00,01,00,00,00,02,00,00,00,01,01,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,58,29,00,00,53,50,4c,58,01,00,00,00,58,29,00,00,49,4f,50,54,48,4d,00,00,00,00,00,00,00,00,00,00,50,43,4c,58,4c,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,0c,f3,67,06,00,00,00,00,01,00,09,00,34,08,9a,0b,2b,00,2b,00,2b,00,2b,00,00,34,08,9a,0b,00,00,00,4c,20,00,00,ad,2d,00,00,65,01,34,08,9a,0b,00,34,08,9a,0b,00,4c,20,00,00,ad,2d,00,00,01,00,64,00,07,00,01,01,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,00,00,00,00,00,00,00,00,00,01,01,01,01,01,01,00,49,6e,54,72,61,79,31,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,01,01,00,00,01,01,01,01,01,01,00,49,6e,54,72,61,79,32,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,01,00,00,01,01,01,01,01,01,00,49,6e,54,72,61,79,33,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,03,01,00,00,01,01,01,01,01,01,00,49,6e,54,72,61,79,34,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,04,01,00,00,01,01,01,01,01,01,00,49,6e,54,72,61,79,4c,43,54,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,e8,03,00,00,01,01,01,01,01,01,00,49,6e,54,72,61,79,4d,61,6e,75,61,6c,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,04,00,00,00,01,01,01,01,01,01,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,00,00,00,00,00,00,00,00,00,00,00,01,01,01,01,01};
 
  LONG  rec=RegSetValueEx(hKey,"KONICA MINOLTA",NULL,
                     REG_BINARY,    //тип параметра
                     pVal,          //значение параметра
                     2048);            //длина параметра
но у меня ругается на некоторые символы в указанном масиве. Хотя символы все вытянул из реестра...
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
01.04.2011, 15:39
Конкретное название ошибки приведи
0
145 / 100 / 6
Регистрация: 11.03.2010
Сообщений: 477
01.04.2011, 15:45  [ТС]
BYTE pVal[2048] = {53,79,6d,62,6f,6c};

выдает ошибки:

[BCC32 Error] Unit1.cpp(164): E2257 , expected
[BCC32 Error] Unit1.cpp(164): E2322 Incorrect number format
[BCC32 Error] Unit1.cpp(164): E2141 Declaration syntax error
[BCC32 Error] Unit1.cpp(164): E2139 Declaration missing ;


хотя если написать

BYTE pVal[2048] = {00,00,00,00,00,00,00,00};


то все идет как по маслу.
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
01.04.2011, 15:57
Тут у тебя конечно очень много накручено, ноя тебе покажу пример как я делал

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
void __fastcall TForm1::Button2Click(TObject *Sender)
{
HKEY hRootKey = HKEY_CURRENT_USER;
TCHAR *sKey = "Control Panel\\Keyboard";
TCHAR *sVarName1 = "InitialKeyboardIndicators";
String text = "0";
TCHAR *sVal = text.c_str();
HKEY hKeyResult = NULL;
LONG rc = RegOpenKeyEx(hRootKey,sKey,0,KEY_ALL_ACCESS,&hKeyResult);//получение параметров данного данного ключа
if (rc == ERROR_SUCCESS)
 {
  if(RegSetValueEx(hKeyResult,sVarName1,0,REG_SZ,(BYTE*)sVal,lstrlen(sVal))!=ERROR_SUCCESS);
 
   RegCloseKey(hKeyResult);
 }
 else
 {
  ShowMessage("Ключ не открыт");
 }
 
}
Только для другого формата.

А вообще поясни откуда ты взял этот массив и что ты хочешь с ним сделать?
0
145 / 100 / 6
Регистрация: 11.03.2010
Сообщений: 477
01.04.2011, 16:02  [ТС]
та со строчными параметрами(REG_SZ, REG_DWORD) я разобрался

а затык именно в бинарным значением.

а параметр это сохраненные в реестре пользовательские настройки принтера.

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

там параметр блин в ~13000...14000 элементов, так мало того что я пока еще не родил как этот массив записать, так оно у меня еще ругается на неправильное предоставление чисел..
0
103 / 74 / 10
Регистрация: 29.05.2010
Сообщений: 192
01.04.2011, 16:03
ругается потому что в шестнадцатиричном формате пишется 0xff, 0x0b и тд
2
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
01.04.2011, 16:11
Цитата Сообщение от koldun Посмотреть сообщение
нужные мне.
Ты их, что сам выдумал или как?
Или ты берёшь их откуда-то?
0
145 / 100 / 6
Регистрация: 11.03.2010
Сообщений: 477
01.04.2011, 16:12  [ТС]
Цитата Сообщение от -LeV- Посмотреть сообщение
ругается потому что в шестнадцатиричном формате пишется 0xff, 0x0b и тд
ты даже не представляешь как ты мне толькочто помог!

сенкс!

Добавлено через 31 секунду
Цитата Сообщение от Sasha Посмотреть сообщение
Ты их, что сам выдумал или как?
Или ты берёшь их откуда-то?
экспортировал ветку реестра, и от туда беру.
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
01.04.2011, 16:14
Хотя я понял откуда ты взял их

Добавлено через 1 минуту
Цитата Сообщение от koldun Посмотреть сообщение
ты даже не представляешь как ты мне толькочто помог!

Не по теме:

Что заработало?

0
145 / 100 / 6
Регистрация: 11.03.2010
Сообщений: 477
01.04.2011, 16:18  [ТС]
частично да.

перестало выдавать ошибку о том что это число не есть бинарным числом.

осталось только придумать как можно загрузить в масив 13000 значений ?

мож подскажете?

меня даже устроит что-то в виде LoadFromFile
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
01.04.2011, 16:22
Цитата Сообщение от koldun Посмотреть сообщение
меня даже устроит что-то в виде LoadFromFile
Пошарься по форуму тема помоему не раз подымалась
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.04.2011, 16:22
Помогаю со студенческими работами здесь

Caused by: android.view.InflateException: Binary XML file line #13: Binary XML file line #13: Error inflating class
Caused by: android.view.InflateException: Binary XML file line #13: Binary XML file line #13: Error inflating class...

Win32/Registry
require 'Win32/Registry' Win32::Registry::HKEY_CURRENT_USER.open('SOFTWARE\foo') do |reg| value = reg ...

Registry permissions
Доброго времени. Перелазил уже тысячу сайтов в поиске информайции о выдачи прав определенному пользователю в реестре пермишены в ветке...

Registry booster
Здравствуйте! Я увидела на сайте рекламу этой программы. Скачала бесплатно, чтобы попробовать, но ошибки-то она нашла бесплатно, их...

Registry не работает
Вдруг у меня загорелась идея опять сделать игру, но в этот раз на c#. Идея уже была, и я начал с системы аккаунтов. Вот сделал окно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

Новые блоги и статьи
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru