RAD Studio VCL Reference
ContentsIndex
PreviousUpNext
TRegistry.KeyExists Method

Determines if a specified key exists.

Pascal
function KeyExists(const Key: string): Boolean;
C++
__fastcall Boolean KeyExists(const AnsiString Key);

Call KeyExists to determine if a key of a specified name exists. Key is the name of the key for which to search.  

C++ Examples: 

 

/*
This example shows how to use the TRegistry class in order to
find, insert and delete Keys and Items into the Windows Registry.
This example uses two buttons: InsertToRegBtn and DeleteFromRegBtn,
for inserting and deleting the values.
*/
void __fastcall TForm2::InsertToRegBtnClick(TObject *Sender)
{
    TRegistry* reg = new TRegistry(KEY_READ);
    reg->RootKey = HKEY_LOCAL_MACHINE;

    if(!reg->KeyExists("Software\\MyCompanyName\\MyApplication\\"))
    {
        MessageDlg("Key not found! Created now.",
                    mtInformation, TMsgDlgButtons() << mbOK, 0);
    }
    reg->Access = KEY_WRITE;
    bool openResult = reg->OpenKey("Software\\MyCompanyName\\MyApplication\\", true);

    if(!openResult)
    {
        MessageDlg("Unable to create key! Exiting.",
                    mtError, TMsgDlgButtons() << mbOK, 0);
        return;
    }
    //checking if the values exist and inserting when neccesary

    if(!reg->KeyExists("Creation\ Date"))
    {
        TDateTime today = TDateTime::CurrentDateTime();
        reg->WriteDateTime("Creation\ Date", today);
    }

    if(!reg->KeyExists("Licenced\ To"))
    {
        reg->WriteString("Licenced\ To", "MySurname\ MyFirstName");
    }

    if(!reg->KeyExists("App\ Location"))
    {
        reg->WriteExpandString("App\ Location",
                                "%PROGRAMFILES%\\MyCompanyName\\MyApplication\\");
    }

    if(!reg->KeyExists("Projects\ Location"))
    {
        reg->WriteExpandString("Projects\ Location",
                                "%USERPROFILE%\\MyApplication\\Projects\\");
    }

    reg->CloseKey();
}
//---------------------------------------------------------------------------
void __fastcall TForm2::DelFromRegBtnClick(TObject *Sender)
{
    //deleting the example registry entries
    TRegistry* reg = new TRegistry(KEY_WRITE);
    reg->RootKey = HKEY_LOCAL_MACHINE;

    reg->DeleteKey("Software\\MyCompanyName\\MyApplication");
    reg->DeleteKey("Software\\MyCompanyName");

    reg->CloseKey();
}
//---------------------------------------------------------------------------

 

Delphi Examples: 

{
This example shows how to use the TRegistry class in order to
find, insert and delete Keys and Items into the Windows Registry.
This example uses two buttons: InsertToRegBtn and DeleteFromRegBtn,
on a form, for inserting and deleting the values.
}
procedure TForm3.InsertToRegBtnClick(Sender: TObject);
var
  reg        : TRegistry;
  openResult : Boolean;
  today      : TDateTime;
begin
  reg := TRegistry.Create(KEY_READ);
  reg.RootKey := HKEY_LOCAL_MACHINE;

  if (not reg.KeyExists('Software\\MyCompanyName\\MyApplication\\')) then
    begin
      MessageDlg('Key not found! Created now.',
                            mtInformation, mbOKCancel, 0);
    end;
  reg.Access := KEY_WRITE;
  openResult := reg.OpenKey('Software\\MyCompanyName\\MyApplication\\',True);

  if not openResult = True then
    begin
      MessageDlg('Unable to create key! Exiting.',
                  mtError, mbOKCancel, 0);
      Exit();
    end;

  {checking if the values exist and inserting when neccesary}

  if not reg.KeyExists('Creation\ Date') then
    begin
      today := Now;
        reg.WriteDateTime('Creation\ Date', today);
    end;

  if not reg.KeyExists('Licenced\ To') then
    begin
        reg.WriteString('Licenced\ To', 'MySurname\ MyFirstName');
    end;

  if not reg.KeyExists('App\ Location') then
    begin
        reg.WriteExpandString('App\ Location',
                            '%PROGRAMFILES%\\MyCompanyName\\MyApplication\\');
    end;

  if not reg.KeyExists('Projects\ Location') then
    begin
        reg.WriteExpandString('Projects\ Location',
                            '%USERPROFILE%\\MyApplication\\Projects\\');
    end;

  reg.CloseKey();

end;

procedure TForm3.DeleteFromRegBtnClick(Sender: TObject);
var
  reg : TRegistry;
begin
  reg := TRegistry.Create(KEY_WRITE);
  reg.RootKey := HKEY_LOCAL_MACHINE;

  reg.DeleteKey('Software\\MyCompanyName\\MyApplication');
  reg.DeleteKey('Software\\MyCompanyName');

  reg.CloseKey();
end;

 

Copyright(C) 2009 Embarcadero Technologies, Inc. All Rights Reserved.
What do you think about this topic? Send feedback!