PDA

View Full Version : سوال: خوانده نشدن بعضی از key ها در رجیستری ویندوز



mahdi.sagga
دوشنبه 29 آذر 1395, 21:16 عصر
با عرض سلام و درود و تبریک پیشاپیش شب یلدا خدمت عزیزان
بنده با این کد قبلا میتونستم key ها رو از رجیستری بخونم و تو یه لیست بریزم ولی یرای بعضی از مسیر ها این کد کار نمیکنه مثلا برای مسیر زیر این کد کار نمیکنه
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\U SBSTOR

ولی مثلا برای این مسیر کار میکنه HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet

اینم کد

var
i:integer;
reg: TRegistry;
list :TStringlist;
begin
Reg:= TRegistry.Create;
list:= TStringList.Create;
with Reg do
begin
RootKey:= HKEY_LOCAL_MACHINE;
if OpenKey('SYSTEM\CurrentControlSet\Enum\USBSTOR',tr ue) then
begin
GetKeyNames(list);
for i:=0 to list.Count-1 do
ListView1.Items.Add.Caption:=list.Strings[i];
CloseKey;
end;
end;
list.Free;
Reg.Free;
end;

از دوستان کسی میدونه مشکل از کجاست؟
اصلا این روش خواندن رجیستری درسته؟

Mask
سه شنبه 30 آذر 1395, 08:44 صبح
در نسخه های جدید ویندوز برای دسترسی به بعضی از شاخه ها باید برنامتون run as admin باز بشه.

mahdi.sagga
چهارشنبه 01 دی 1395, 21:10 عصر
ممنونم جنای ماسک عزیز مشکل با run as admin حل نشد تا اینکه بالاخره اومدم .تو خط if OpenKey('SYSTEM\CurrentControlSet\Enum\USBSTOR',tr ue) then
اومدم OpenKeyReadOnly به جای OpenKeyنوشتم.