RAD Studio VCL Reference
|
Specifies the level of access to use when opening keys.
property Access: LongWord;
__property LongWord Access;
Use Access to specify the level of security access to use when opening keys. The OpenKey method uses the value of Access when opening a registry key. Access is initialized by the TRegistry constructor, but can be altered before calling OpenKey.
The value of Access is a set of flags or'd together, where each flag indicates a type of permission. Choose a value that grants sufficient permission to allow the desired actions while not exceeding the access level of the system running the application. The following table lists the flags that can be included:
Flag |
Meaning |
KEY_ALL_ACCESS |
combination of KEY_READ, KEY_WRITE, and KEY_CREATE_LINK. |
KEY_READ |
combination of KEY_QUERY_VALUE, KEY_ENUMERATE_SUB_KEYS, and KEY_NOTIFY. |
KEY_WRITE |
combination of KEY_SET_VALUE and KEY_CREATE_SUB_KEY. |
KEY_QUERY_VALUE |
grants permission to query subkey data. |
KEY_ENUMERATE_SUB_KEYS |
grants permission to enumerate subkeys. |
KEY_NOTIFY |
grants ability to receive change notifications. |
KEY_SET_VALUE |
grants permission to set subkey data. |
KEY_CREATE_SUB_KEY |
grants permission to create subkeys. |
KEY_CREATE_LINK |
grants permission to create symbolic links. |
KEY_EXECUTE |
restricts permission to read-only access. |
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!
|