الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

التعامل مع الرجيستري مسجل النظام

بدأه زكيري عبد العالي في 28 أغسطس 2007 · 1 رد · 2,003 مشاهدة · في Delphi .NET/PRISM
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

التعامل مع الرجيستري مسجل النظام

Microsoft.Win32 بنيم سبيس

السلام عليكم بعد المثال السابق للسبلاش سنقوم الان بكيفية التعامل مع الرجيستري وذلك من خلال مثال لكلاس تقوم بحفض بيانات المفاتيح واسترجاعها وانا استعملها غابا في حفض اعدادات تطبيفي

/index.php?showtopic=40420

هناك مواضيع كثيرة في المتدي حول الموضوع حتي في منتدي الدلفي هناك دروس لكيفية التهامل معها بالدلفي لكن هنا استعمال دلفي نت

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.

لم اكمل تصحيح المثال المرفق لكنه يفي بالغرض

شكرا

Gestion_STOCK_DELPHI_NET.rar

تم تعديل هذه المشاركة بواسطة زكيري عبد العالي في 16 أغسطس 2008 في 14:40

#2

اتعامل مع الرجيستري

مواضيع مشابهة