التعامل مع الرجيستري مسجل النظام
Microsoft.Win32 بنيم سبيس
السلام عليكم بعد المثال السابق للسبلاش سنقوم الان بكيفية التعامل مع الرجيستري وذلك من خلال مثال لكلاس تقوم بحفض بيانات المفاتيح واسترجاعها وانا استعملها غابا في حفض اعدادات تطبيفي
هناك مواضيع كثيرة في المتدي حول الموضوع حتي في منتدي الدلفي هناك دروس لكيفية التهامل معها بالدلفي لكن هنا استعمال دلفي نت
unit Regedit;
interface
uses Microsoft.Win32,System.Collections;
type
TRegedit = class
private { Déclarations privées }
public
constructor Create;
procedure addKey(iUesr,iPass :string );
function ReadKey() : ArrayList;
function FindValue( iValue : string):Boolean;
procedure SavePass( iValue : string);
procedure ClearPass();
function GetValueMod() : Integer;
function GetSavelog(): string;
end;
const
vKeyPath = 'Software\\Microsoft\\Windows\\CurrentVersion\\WinSystem';
var
vKey : RegistryKey;
implementation
constructor TRegedit.Create;
begin
inherited Create;
end;
procedure TRegedit.addKey(iUesr,iPass :string );
begin
vKey := Registry.CurrentUser.CreateSubKey(vKeyPath);
vKey.SetValue(iUesr, iPass);
vKey.Close();
end;
function TRegedit.ReadKey() : ArrayList;
var
vlist: ArrayList;
i : Integer;
vUser,vPass:string;
begin
try
vKey := Registry.CurrentUser.OpenSubKey(vKeyPath);
vlist:=ArrayList.Create;
for i:=0 to vKey.ValueCount-1 do
begin
vUser := vKey.GetValueNames.ToString();
vPass := vKey.GetValue(vUser).ToString();
vlist.Add(vUser + ';' + vPass);
end;
Result:= vlist;
Except
on e: exception do
begin
Result:= nil;
Console.WriteLine(e.Message);
end;
end;
end;
function TRegedit.FindValue( iValue : string):Boolean;
var
vliteLogin:ArrayList;
i : Integer;
begin
vliteLogin := ReadKey();
for i:= 0 to vliteLogin.Count-1 do
begin
if (iValue = vliteLogin.ToString()) then
begin
Result:= True;
Exit;
end;
end;
Result:= false;
end;
procedure TRegedit.SavePass( iValue : string);
begin
vKey := Registry.CurrentUser.CreateSubKey(vKeyPath);
vKey.SetValue('Savelog', iValue);
vKey.SetValue('SaveMod', '1');
vKey.Close();
end;
procedure TRegedit.ClearPass();
begin
vKey := Registry.CurrentUser.CreateSubKey(vKeyPath);
vKey.SetValue('SaveMod', '0');
vKey.Close();
end;
function TRegedit.GetValueMod() : Integer;
var
val : Integer;
begin
try
vKey := Registry.CurrentUser.OpenSubKey(vKeyPath);
val := Int32.Parse(vKey.GetValue('SaveMod').ToString());
vKey.Close();
Result:= val;
Except
on e: exception do
begin
Result:= 0;
Console.WriteLine(e.Message);
end;
end;
end;
function TRegedit.GetSavelog(): string;
var
val : string;
begin
try
vKey := Registry.CurrentUser.OpenSubKey(vKeyPath);
val := vKey.GetValue('Savelog').ToString();
vKey.Close();
Result:= val;
except
on e: exception do
begin
Result:= nil;
Console.WriteLine(e.Message);
end;
end;
end;
end.لم اكمل تصحيح المثال المرفق لكنه يفي بالغرض
شكرا