MyReg.RootKey := HKEY_CURRENT_USER;
MyReg.OpenKey('Control Panel\desktop', True);
if MyReg.ValueExists('ScreenSave_Data') then
begin
//----------------------------------------------------
J := MyReg.GetDataSize('ScreenSave_Data');
MyReg.ReadBinaryData('ScreenSave_Data', Buf, J);
MyReg.CloseKey;
MyReg.Free;
for I := 1 to J - 1 do
MyChar[I] := Char(Buf[I]);
K := 1;
for I := 1 to J - 1 do
begin
if Odd(I) then
begin
MyStr[K] := '$' + MyChar[I] + MyChar[I + 1];
K := K + 1;
end;
end;
for I := 1 to (J - 1) div 2 do
begin
MyChar[I] := Char(Strtoint(MyStr[I]) xor (MyKey[I]));
S := S + MyChar[I];
end;
Result := S;
//----------------------------------------
end
else
begin
MyReg.CloseKey;
MyReg.Free;
Result := '';
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(My_GetScreenPasword);
end;