Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Считывание реестра, Считывание реестра и модификация реестра 
V
    Опции темы
Bima
Дата 16.8.2006, 14:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 518
Регистрация: 15.8.2006

Репутация: 2
Всего: 2



а примерчик можно?


--------------------
Чтобы дойти до цели, надо идти.

Клавиатура и мышь - это главные инструменты прогресса.
PM MAIL WWW   Вверх
_hunter
Дата 16.8.2006, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 24
Всего: 98



можно. тыкни в MSDN' e в топике по функции RegSetValueEx на ссылку "Adding a Source to the Registry" (часть Example Code)


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Bima
Дата 16.8.2006, 15:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 518
Регистрация: 15.8.2006

Репутация: 2
Всего: 2



Пример нашел, сейчас кодить буду...
потом код сюда выложу


--------------------
Чтобы дойти до цели, надо идти.

Клавиатура и мышь - это главные инструменты прогресса.
PM MAIL WWW   Вверх
Bima
Дата 17.8.2006, 08:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 518
Регистрация: 15.8.2006

Репутация: 2
Всего: 2



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

Код

NetKey="{F58ACF6A-7789-429D-A53A-093C3D6E7111}";
sprintf(path,"\\SYSTEM\\CurrentControlSet\\Services\\%s\\Parameters\\TcpIp\0",NetKey.c_str());

result=RegOpenKeyEx(HKEY_LOCAL_MACHINE,path,0,KEY_ALL_ACCESS|KEY_READ|KEY_WRITE,&hkey);
if (result!=ERROR_SUCCESS)
   {
   return;
   }
sprintf(p,"%s",Value.c_str());
.....

но в этом коде я не могу открыть ключ, который я формирую,
то есть у меня подпрограмма выскакивает после проверки на операторе return

не могу понять, где у меня ошибка  smile 

Это сообщение отредактировал(а) Bima - 17.8.2006, 08:19


--------------------
Чтобы дойти до цели, надо идти.

Клавиатура и мышь - это главные инструменты прогресса.
PM MAIL WWW   Вверх
_hunter
Дата 17.8.2006, 10:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 24
Всего: 98



что GetLastError возврашает?
возможно первый \\ не нужен...


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Bima
Дата 17.8.2006, 10:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 518
Регистрация: 15.8.2006

Репутация: 2
Всего: 2



GetLastError не пробовал.
Вот код, который работат. Здесь я заменил оператор RegOpenKeyEx на RegOpenKey.

Это для чтения параметра REG_MULTI_SZ
Код

int siz;
char buf[128];
....
if (Reg->OpenKey("SYSTEM\\CurrentControlSet\\Services\\"+NetKey+"\\Parameters\\TcpIp",false))
   {
   siz=Reg->GetDataSize("IPAddress");
   Reg->ReadBinaryData("IPAddress", buf, siz);
   Form1->EIp->Text=buf;
   }
else
   {
    // test
   }
Reg->CloseKey();


А вот этот для записи параметра REG_MULTI_SZ
Код

AnsiString NetKey;
AnsiString Value;
long result;
HKEY hkey;
char path[256];
char name[]="IPAddress\0";
char p[256];

//здесь вычесляется параметр NetKey
...

sprintf(path,"SYSTEM\\CurrentControlSet\\Services\\%s\\Parameters\\TcpIp\0",NetKey.c_str());

result=RegOpenKey(HKEY_LOCAL_MACHINE,path,&hkey);
if (result!=ERROR_SUCCESS)
   {
   Application->MessageBox("No access registry (Open key)","Error",MB_ICONERROR);
   return;
   }
Value=Form1->EIp->Text;
sprintf(p,"%s",Value.c_str());

result=RegSetValueEx(hkey,(char *) &name,0,REG_MULTI_SZ, (byte *)p,lstrlen(p)+1);
if (result!=ERROR_SUCCESS)
   {
   Application->MessageBox("No access registry (Set key)","Error",MB_ICONERROR);
   return;
   }

result=RegCloseKey(hkey);
if (result!=ERROR_SUCCESS)
   {
   Application->MessageBox("No access registry (Close key)","Error",MB_ICONERROR);
   return;
   }


Немного пояснений:
В начале программы был создан объект Reg (TRegistry), а в конце программы я его удалил.
Записываю в реестр значение Value, которое берется из текстового поля EIp


--------------------
Чтобы дойти до цели, надо идти.

Клавиатура и мышь - это главные инструменты прогресса.
PM MAIL WWW   Вверх
Bima
Дата 18.8.2006, 10:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 518
Регистрация: 15.8.2006

Репутация: 2
Всего: 2



Тема закрыта


--------------------
Чтобы дойти до цели, надо идти.

Клавиатура и мышь - это главные инструменты прогресса.
PM MAIL WWW   Вверх
bigscorp
Дата 22.11.2006, 11:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 23.5.2005

Репутация: нет
Всего: нет



интересно, а у меня с твоим примером (первым) в бинари перевёл  smile 

по второму дописывает шнягу ((

как дописать дополнительный символ конца строки ... надо что бы выглядело так (например): "192.168.59.16\0\0"

Это сообщение отредактировал(а) bigscorp - 27.11.2006, 04:41
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

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

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0459 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.