TRegistry is a useful class can access Windows Registry which can check if the key exists or not, create a key, write a key, and etc.Below code shows the example of reading/writing keys and items on Microsoft Windows System Registry.
Uses System.Win.Registry; 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(); reg.Free; 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(); reg.Free; end;