Ув. Жуковцы!
Помогите пожалуйста.Не могли бы вы поделится таким кодом
Который бы делал :
1)Проверял в реестре есть ли ключ,если есть ключ,то отменял генерацию.
2)Если нет ключа генерировал бы 16-и цыферно-буквенный код(буквы англ) И записывал его в реестр.
Reg := TRegistry.Create();
try
Reg.RootKey := HKEY_CURRENT_USER;
// можно так
if Reg.OpenKey('\Software\key', False) then
begin
ShowMessage('Ключ есть');
end
else
begin
ShowMessage('Ключа нет');
end;
// но лучше так
if Reg.KeyExists('\Software\key') then
ShowMessage('Ключ есть')
else
ShowMessage('Ключа нет');
finally
Reg.Free;
inherited;
end;
Генерация символов?
function RandomPassword(PLen: Integer): string;
var
str: string;
begin
Randomize;
//string with all possible chars
str := 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVW XYZ';
Result := '';
repeat
Result := Result + str[Random(Length(str)) + 1];
until (Length(Result) = PLen)
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
//generate a password with 10 chars
label1.Caption := RandomPassword(10);
end;
Как использовать?
procedure TForm1.Button1Click(Sender: TObject);
begin
//generate a password with 10 chars
label1.Caption := RandomPassword(10);
end;
Запись в рееестр?
procedure TForm1.Button1Click(Sender: TObject);
var
Registry: TRegistry;
begin
{ создаём объект TRegistry }
Registry := TRegistry.Create;
{ устанавливаем корневой ключ; напрмер hkey_local_machine или hkey_current_user }
Registry.RootKey := hkey_local_machine;
{ открываем и создаём ключ }
Registry.OpenKey('software\MyRegistryExample',true );
{ записываем значение }
Registry.WriteString('MyRegName','MyRegistry Value');
{ закрываем и освобождаем ключ }
Registry.CloseKey;