RAD Studio VCL Reference
|
Opens a specified key.
function OpenKey(const Key: string; CanCreate: Boolean): Boolean;
__fastcall Boolean OpenKey(const AnsiString Key, Boolean CanCreate);
Call OpenKey to make a specified key the current key. Key is the name of the key to open. If Key is nil (Delphi) or NULL (C++), the CurrentKey property is set to the key specified by the RootKey property.
CanCreate specifies whether to create the specified key if it does not exist. If CanCreate is true, the key is created if necessary.
Key is opened or created with the security access value specified by the Access property. OpenKey only creates non-volatile keys, A non-volatile key is stored in the registry and is preserved when the system is restarted.
OpenKey returns true if the key is successfully opened or created
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!
|