C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Реестр.
ksm
Отправлено: 29.11.2003, 17:18


Не зарегистрирован







Как сделать запись в реестр пути к файлу и как ее потом считать из него. И как узнать что такой записи еще в реестре нет.
** pasha
Отправлено: 30.11.2003, 23:26


Не зарегистрирован







Пример из программы:
CODE

bool isNotReg;
const char *RegKey = "Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer";

Reg->RootKey = HKEY_CURRENT_USER;

  Reg->OpenKey(RegKey, false);
  if(Reg->ValueExists("NoTrayContextMenu")){
    int sr = Reg->ReadInteger("NoTrayContextMenu");
    if(sr != 1) isNotReg = true;
    }else isNotReg = true;

  if(isNotReg){
    Reg->CloseKey();
    Reg->RootKey = HKEY_CURRENT_USER;
    Reg->OpenKey(RegKey, true);
    Reg->WriteInteger("NoTrayContextMenu",1);
    Reg->CloseKey();
    }
   delete Reg;
   if(isNotReg) ...


и так далее ...
** pasha
Отправлено: 30.11.2003, 23:46


Не зарегистрирован







Ну это написал про тип int
И конечно сначала надо
CODE

TRegistry* Reg = new TRegistry;
Reg->RootKey = HKEY_CURRENT_USER;


А строку записать/прочитать точно-также:
ReadString, WriteString

CODE

#include <Registry.hpp>
const char *RegKey = "Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer";


void __fastcall TForm1::Button3Click(TObject *Sender)
{
 TRegistry* Reg = new TRegistry;
 Reg->RootKey = HKEY_CURRENT_USER;

 Reg->OpenKey(RegKey, false);
 Reg->WriteString("MyProgramWay",ExtractFilePath(Application->ExeName));
 Reg->CloseKey();
 delete Reg;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button4Click(TObject *Sender)
{
 TRegistry* Reg = new TRegistry;
 Reg->RootKey = HKEY_CURRENT_USER;

 Reg->OpenKey(RegKey, false);
 AnsiString sf = Reg->ReadString("MyProgramWay");
 Reg->CloseKey();
 delete Reg;
 ShowMessage(sf);
}

Вернуться в Вопросы программирования в C++Builder