Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

Пишу на Буилдере си 5, реестр, бинарн, знач

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование
Предыдущая тема :: Следующая тема  
Автор Сообщение
PoMaH
Гость





СообщениеДобавлено: Пт Июл 26 2002 05:59    Заголовок сообщения: Пишу на Буилдере си 5, реестр, бинарн, знач Ответить с цитатой

помогите, нужно записать в реестр бинарное значение напр - 95 00 00 00 программно, как?
знаю нужно както через массив... с массивами слаб, получаеться тока сменить первое значение (значит кудыто не туда пальцем тыкаю Smile)а полностью ни как если есть у кого-нибудь рабочий пример, плиз буду очень благодарен. и еще нужно это значение проверить вывести например в - лабел.
Smile жду, если что пишите на мыло -severyaninu@pisem.net (можем если что обменяться опытом, Smile))
Вернуться к началу
Andy-C
Гость





СообщениеДобавлено: Пт Июл 26 2002 08:20    Заголовок сообщения: Re: Пишу на Буилдере си 5, реестр, бинарн, знач Ответить с цитатой

LONG RegSetValueEx(
HKEY hKey, // handle of key to set value for
LPCTSTR lpValueName, // address of value to set
DWORD Reserved, // reserved
DWORD dwType, // flag for value type
CONST BYTE *lpData, // address of value data
DWORD cbData // size of value data Оно самоё корректно и выставить Wink
);
Вернуться к началу
PoMaH
Гость





СообщениеДобавлено: Вт Июл 30 2002 13:04    Заголовок сообщения: Re: Пишу на Буилдере си 5, реестр, бинарн, знач Ответить с цитатой

Ну примерчик есть рабочий или часть кода...
плиз...
не могу ... слаб с хелпами работать...
нужно вставить 95000000... в двоичном формате...
Вернуться к началу
Andy-C
Гость





СообщениеДобавлено: Ср Июл 31 2002 08:13    Заголовок сообщения: Re: Пишу на Буилдере си 5, реестр, бинарн, знач Ответить с цитатой

В принципе, для записи такого значения достаточно DWORD.

unsigned long i=95000000;
HKEY key;
unsigned long val,rez;

//Открываем ключ, ежели отсутствует - создаём
rez=RegCreateKeyEx(
HKEY_CURRENT_USER, // handle of an open key
"SOFTWARE\\My_Company\\Proga\\v.1", // address of subkey name
0, // reserved
"binary_data_", // address of class string
REG_OPTION_NON_VOLATILE , // special options flag
KEY_ALL_ACCESS , // desired security access
NULL, // address of key security structure
&key, // address of buffer for opened handle
&val// address of disposition value buffer
);
if(rez!=ERROR_SUCCESS){
Application->MessageBox("Проблемы с открытием ключа","ОШИБКА",MB_ICONHAND+MB_OK);
return;
}
//пишем значение
RegSetValueEx(
key, // handle of key to set value for
"dword_dat", // address of value to set
0, // reserved
REG_DWORD , // flag for value type
(unsigned char *)&i, // address of value data
sizeof(i) // size of value data
);
if(rez!=ERROR_SUCCESS)
Application->MessageBox("Проблемы с записью ключа","ОШИБКА",MB_ICONHAND+MB_OK);

Ежели необходимо больше, чем DWORD, то необходимо изменить и REG_DWORD на REG_BINARY.
Вернуться к началу
PoMaH
Гость





СообщениеДобавлено: Чт Авг 01 2002 14:23    Заголовок сообщения: Re: Пишу на Буилдере си 5, реестр, бинарн, знач Ответить с цитатой

пасиб с DWORD значение изумительно записываються а вот с бинарными коряво както пишеться...
нужно поменять вот именно бинарное значение...
%)
Вернуться к началу
Andy-C
Гость





СообщениеДобавлено: Чт Авг 01 2002 14:33    Заголовок сообщения: Re: Пишу на Буилдере си 5, реестр, бинарн, знач Ответить с цитатой

0, // reserved
REG_BINARY , // flag for value type
(unsigned char *)&i, // address of value data
sizeof(i) // size of value data

ежели бедет храниться в массива, то
размер sizeof(элемент)*кол-во элементов.

А что значит коряво?
Он не распознаёт порядок байт (при рпосмотре в regeditе)
Вернуться к началу
PoMaH
Гость





СообщениеДобавлено: Чт Авг 01 2002 15:13    Заголовок сообщения: Re: Пишу на Буилдере си 5, реестр, бинарн, знач Ответить с цитатой

ну да пробовал...
...
не распознаёт всякую билиберду пишет..
но значение бинарное ... Smile
...я первоначально пытался вот так:

TRegistry *r = new TRegistry();
const int bs = 16;
char b[bs];
try {
r->RootKey = HKEY_CURRENT_USER;
r->OpenKey("\\", false);
for(int i = bs - 1; i >= 0; i--)
b[ i ] = i;
r->WriteBinaryData("test", b, bs);
}
catch(Exception &ex) {
Application->ShowException(&ex);
}
delete r;
но млин строку в бинарном отлично пишет но вот конкретно что мне нужно ну ни как не пишет Sad((
нужно как то через масив... а я их ну ника не понимаю как с ними работать.. да и не сталкивался...
Вернуться к началу
Andy-C
Гость





СообщениеДобавлено: Пт Авг 02 2002 07:47    Заголовок сообщения: Re: Пишу на Буилдере си 5, реестр, бинарн, знач Ответить с цитатой

TRegistry *r=new TRegistry();
unsigned long d=95000000;

r->OpenKey("\\SOFTWARE\\My_company\\Product\\v.1",true);
r->WriteInteger("int_data",d);
r->WriteBinaryData("bin_data",&d,sizeof(d));

оба варианта записи работают совершенно корректно и ОДИНАКОВО!!!!!!!!!!!!
Записывается (по байтно в hex) c0 95 a9 05
С учётом порядка следования байт в Intel архитектуре : 0x05a9950c, что (как не извернись) соответствует десятичному значению 95000000!!!!!!!!!!!!
По моему, Вы не в курсе, что Вам надо? ;(
Вернуться к началу
PoMaH
Гость





СообщениеДобавлено: Пт Авг 02 2002 11:28    Заголовок сообщения: Re: Пишу на Буилдере си 5, реестр, бинарн, знач Ответить с цитатой

мда...
ну пишет то оно то что вы говорите...
но мне нужно вот именно записать 95 00 00 00
а там с права в строке получиться должно -"...."
фиг знает что там получаеться?
но нужно вот именно...
вы уж не ворчите...
есть такая вот штука...
частенькоя просто ручками там первые два символа менял..
хочу просто программно теперь менять... Smile))
а как мы кажеться что то друг друга не допонимаем...
...
правильно вы говорите что пулучаться : Записывается (по байтно в hex) c0 95 a9 05
и с права у вас высвечиваться - А.с. - ага?
но мне нужно чтоб во втором столбце после 0000 было прописано вот именно 95 00 00 00 -
ну вроде бы как нибудь обяснил? Smile))
Вернуться к началу
PoMaH
Гость





СообщениеДобавлено: Пт Авг 02 2002 11:29    Заголовок сообщения: Re: Пишу на Буилдере си 5, реестр, бинарн, знач Ответить с цитатой

мда...
ну пишет то оно то что вы говорите...
но мне нужно вот именно записать 95 00 00 00
а там с права в строке получиться должно -"...."
фиг знает что там получаеться?
но нужно вот именно...
вы уж не ворчите...
есть такая вот штука...
частенькоя просто ручками там первые два символа менял..
хочу просто программно теперь менять... Smile))
а как мы кажеться что то друг друга не допонимаем...
...
правильно вы говорите что пулучаться : Записывается (по байтно в hex) c0 95 a9 05
и с права у вас высвечиваться - А.с. - ага?
но мне нужно чтоб во втором столбце после 0000 было прописано вот именно 95 00 00 00 -
ну вроде бы как нибудь обяснил? Smile))
Вернуться к началу
Andy-C
Гость





СообщениеДобавлено: Пт Авг 02 2002 13:19    Заголовок сообщения: Re: Пишу на Буилдере си 5, реестр, бинарн, знач Ответить с цитатой

r->WriteString("string_data",AnsiString(95000000));
r->WriteInteger(".. показывает в 16-ричной системе счисления и 95 там, полная случайность, вернее закономерность 0x95=149

Вы хотите туда записать 95 000 000 в десятичной системе счисления или увидеть в регедите 95000000???????????!!!!!!!!!
Вернуться к началу
PoMaH
Гость





СообщениеДобавлено: Пт Авг 02 2002 14:07    Заголовок сообщения: Ответ на: "Re: Пишу на Буилдере си 5, рее..- Andy-C- 02-08-2002 14:19" Re: Пишу на Буилдере си 5, Ответить с цитатой

есть ася я там с 8 и до 18... могет пообщаемся...Andy? (108015903)
...
вот смотри задача какая у меня...
убирать ставить авторун.
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\.. в значении двоичного параметра "NoDriveTypeAutoRun" вместо "95" вписываем "91" или "bd" - тоже интересно как это?
Возможные варианты:
91 — AutoRun для всех дисководов включен;
bd — AutoRun для всех дисководов выключен;
95 — AutoRun для CD-ROM и HDD включен.
Вернуться к началу
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...