delphi4arab منتديات دلفي للعرب

نسخة كاملة : اكيف يمكنني جلب كل القيم الموجودة في مسار رجستري
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم 

كيف يمكنني جلب كل القيم الموجودة في مسار معين 
HKEY_LOCAL_MACHINE\SOFTWARE\Realtek\Network

يوجد داخل  Network
القيم التالية اريد جلبها الى memo
موجودة في الصورة 

والسلام عليكم
الكود التالي سيعمل معك إن شاء الله
كود :
var  Reg : TRegistry; begin   Reg := TRegistry.Create;   Try       Reg.RootKey := HKEY_LOCAL_MACHINE;       If Reg.OpenKeyReadOnly('\SOFTWARE\Realtek\Network\') Then       begin         Memo1.Clear;         Memo1.Lines.Add('Install: ' +Reg.ReadString('install'));         Memo1.Lines.Add('Reboot: ' +Reg.ReadString('reboot'));         Memo1.Lines.Add('Version: '+Reg.ReadString('version'));   end;  reg.CloseKey;   Finally     Reg.Free;   end; end;

كن حذر من مسار الرجيستري HKEY_LOCAL_MACHINE فهو يحتاج إلى صلاحيات الممسؤول للقراءة و الكتابة إليه.
لذلك وجب فتح الــ KEY للقراءة فقط Reg.OpenKeyReadOnly بدل إستخدام Reg.OpenKey التي لا تعمل إلا مع حساب المسؤول في حالة المسار HKEY_LOCAL_MACHINE .
بارك الله فيك اخي ليس هذا القصد انا لا اعرف ان كانت هذه القيم موجودة ام لا اريد ان اعرض كل ما بداخلها Network بحيث لو كانت هناك 1000 قيمة يجلبها كلها


والسلام عليكم

ثانيا الكود لم يجلب شيء بالرغم من تشغيل الدلفي كمسؤول لكن عند تغيير المسار الى HKEY_CURRENT_USER يعمل عادي

المهم الاصل هو جلب كل القيم الموجودة بدون معرفة اسماءها

تمام الحمد لله جربت هذا الكود ونجح r.GetValueNames(memo1.Lines); بقي قراءة ما بداخلها
ملاحظة الكود يعمل معي في user فقط جربت على مسار اخر وجلب القيم عادي في انتظار رد من احد الاخوة
والسلام عليكم

تمام حليت المشكلة عملت loop على العناصر واستخدمت readstring لقراءة القيم جزاكم الله خيرا بقي سؤال حول عدم عمل الكود الخاص بالاخ seddik_xp هل بسبب صلاحيات المسؤول مع اني شغلت الدلفي كمسؤول ولم يعمل

والسلام عليكم
وعليكم السلام
هكذا
PHP كود :
uses
  Registry
;

procedure EnumNames(RootKey: HKEY; const Key: string; var Names: TStrings);
var
 
 Registry: TRegistry;
begin
  Registry 
:= TRegistry.Create;
 
 try
    Registry
.RootKey := RootKey;
 
   Registry.OpenKeyReadOnly(Key);
 
   Registry.GetValueNames(Names);
 
 finally
    Registry
.Free;
 
 end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
 
 Names: TStrings;
begin
  Names 
:= TStringList.Create;
 
 try
    EnumNames
(HKEY_LOCAL_MACHINE, 'SOFTWARE\Realtek\Network', Names);
 
   Memo1.Lines := Names;
 
 finally
    Names
.Free;
 
 end;
end; 
تحصل على كل Value Name
لم انتبه للردود الاخيرة
عموما بالتوفيق.
(03-05-2017, 08:38 PM)Agmcz كتب : [ -> ]لم انتبه للردود الاخيرة
عموما بالتوفيق.

جزاك الله كل خير اخي ممكن تلقي نظرة هنا بارك الله فيك
http://www.delphi4arab.net/forum/showthr...p?tid=8638