01-05-2017, 03:10 PM (آخر تعديل لهذه المشاركة: 01-05-2017, 03:18 PM بواسطة seddik_xp.)
الكود التالي سيعمل معك إن شاء الله
كود :
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 .
02-05-2017, 06:51 AM (آخر تعديل لهذه المشاركة: 02-05-2017, 07:30 AM بواسطة mohamed49.)
بارك الله فيك اخي ليس هذا القصد انا لا اعرف ان كانت هذه القيم موجودة ام لا اريد ان اعرض كل ما بداخلها Network بحيث لو كانت هناك 1000 قيمة يجلبها كلها
والسلام عليكم
ثانيا الكود لم يجلب شيء بالرغم من تشغيل الدلفي كمسؤول لكن عند تغيير المسار الى HKEY_CURRENT_USER يعمل عادي
المهم الاصل هو جلب كل القيم الموجودة بدون معرفة اسماءها
تمام الحمد لله جربت هذا الكود ونجح r.GetValueNames(memo1.Lines); بقي قراءة ما بداخلها
ملاحظة الكود يعمل معي في user فقط جربت على مسار اخر وجلب القيم عادي في انتظار رد من احد الاخوة
والسلام عليكم
تمام حليت المشكلة عملت loop على العناصر واستخدمت readstring لقراءة القيم جزاكم الله خيرا بقي سؤال حول عدم عمل الكود الخاص بالاخ seddik_xp هل بسبب صلاحيات المسؤول مع اني شغلت الدلفي كمسؤول ولم يعمل