C++Builder
  Начало   Форум   Помощь Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: Считывание значения параметра реестра  (Прочитано 1062 раз)
Sasha
Участник


Сказали спасибо: +13/-0
Offline

Сообщений: 413


Считывание значения параметра реестра
« : 27 Май 2013, 13:31:43 »

Здравствуйте!!!!

 Подскажите, по такому вопросу, пытаюсь считать значение параметра реестра и вывести в Edit и занести в реестр значение тоже из этого Edit, но проблема заключается в том что когда я заношу пустой Edit и пытаюсь со считать эту пустоту опять в Edit мне почему-то в Edit выводится квадратик. Я посмотрел в watchlist, то значение пустоты там такое
 "/x03" что это вообще за символ?

Заношу значение в реестр

Код
HKEY hKeyResult = NULL;
AnsiString sVarName2 = "OutPath";
LONG sc = RegOpenKeyEx(HKEY_LOCAL_MACHINE,sKey,0,KEY_ALL_ACCESS,&hKeyResult);//изменение значения параметра данного ключа
    if (sc == ERROR_SUCCESS)
      {
       if(RegSetValueEx(hKeyResult,sVarName2.c_str(),0,REG_SZ,(BYTE*)Edit1->Text.c_str(),lstrlen(Edit1->Text.c_str()))!=ERROR_SUCCESS)
 
       RegCloseKey(hKeyResult);
       }
   else
    {
      ShowMessage("Ошибка внесения каталога-источника в реестр: "+SysErrorMessage(GetLastError()));
    }
 

Вот считываю

Код
HKEY Result = NULL;
TCHAR *bKey = "SOFTWARE\\AvgUpdate";
LONG cb = RegOpenKeyEx(HKEY_LOCAL_MACHINE,bKey,0,KEY_ALL_ACCESS,&Result);
if(cb == ERROR_SUCCESS)
{
 
 AnsiString sVarName1 = "OutPath";
 DWORD Type,Size = 256;
 TCHAR sVal[256];
 LONG bs = RegQueryValueEx(Result, sVarName1.c_str(), NULL, &Type, (BYTE*)sVal, &Size);
   if(bs==ERROR_SUCCESS)
  {
   Edit1->Text = AnsiString(sVal);
   RegCloseKey(Result);
  }
}
else
  {
   ShowMessage("Ключ считывания параметра каталога-источника:"+SysErrorMessage(cb));
  }
 
 

В чём может быть проблема?
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  




....

Powered by SMF 1.1.21 | SMF © 2025, Simple Machines
Страница сгенерирована за 0.112 секунд. Запросов: 21.