PDA

View Full Version : حرفه ای: مشکل با رجیستری در ویندوز 8



SayeyeZohor
جمعه 08 دی 1391, 15:43 عصر
با سلام خدمت دوستان گرامي
من تازه ويندوز 8 نسخه professional رو نصب كردم
بعد با دو تا مشكل روبرو شدم
1- نصب دلفي 2010 انجام شد ولي كرك نمي شد
2- كه بيشتر مهمه اين كه با اين دستور

var
Reg : TRegistry;
begin
Reg := TRegistry.Create;
Reg.RootKey := HKEY_CURRENT_USER;
Reg.CreateKey('Software/Blah/BlahBlah');
end;

يك كليد در HKEY_CURRENT_USER ايجاد كردم ولي در HKEY_LOCAL_MACHINE اجازه ثبت كليد با دستور دلفي داده نميشه ولي دستي تونستم كليد ايجاد كنم
ممنون مي شم كمك كنين

Felony
جمعه 08 دی 1391, 16:30 عصر
1- کرک رو به صورت Run as administrator اجرا کنید و بعد دلفی رو توسطش کرک کنید .

2- چیز عجیبی نیست ، از دسترسی برنامه هایی که به صورت Admin اجرا نمیشن به Local Machine توسط UAC جلوگیری میشه ، برنامتون رو Run as admin کنید تا کلید رو بسازه ؛ برای اینکه برنامتون به صورت پیش فرض با دسترسی Admin اجرا بشه ( البته در صورت تایید کاربر ) هم باید فایل Manifest مربوط به برنامه رو تغییر بدید که در موردش بارها صحبت شده .

SayeyeZohor
جمعه 08 دی 1391, 19:12 عصر
من Uac رو غير فعال كرده بودم
اگه غير فعال بشه بايد در سطح ادمين اجرا بشه ديگه آخه تو ويندوز 7 مشكلي ندارم

Felony
یک شنبه 10 دی 1391, 13:04 عصر
من حواسم نبود گفتم UAC ، منظورم ACL (http://en.wikipedia.org/wiki/Access_control_list)بود ، این نتیجه خوندن نزدیک 250 صفحه Windows Internals تو 3 روزه ... :گیج:

کدتون رو به صورت زیر تغییر بدید ببینید بهش دسترسی داده میشه یا نه :


var
Reg: TRegistry;
begin
Reg := TRegistry.Create(KEY_ALL_ACCESS);
Reg.RootKey := HKEY_CURRENT_USER;
Reg.CreateKey('Software\Blah\BlahBlah');
end;

توضیحات بیشتر :

http://msdn.microsoft.com/en-us/library/windows/desktop/aa374876(v=vs.85).aspx
http://msdn.microsoft.com/en-us/library/windows/desktop/ms724878(v=vs.85).aspx
http://technet.microsoft.com/en-us/library/bb457115.aspx

این هم نکته جالبیه :

http://msdn.microsoft.com/en-us/library/aa384232(v=VS.85).aspx

SayeyeZohor
سه شنبه 12 دی 1391, 23:25 عصر
کدتون رو به صورت زیر تغییر بدید ببینید بهش دسترسی داده میشه یا نه :

var
Reg: TRegistry;
begin
Reg := TRegistry.Create(KEY_ALL_ACCESS);
Reg.RootKey := HKEY_CURRENT_USER;
Reg.CreateKey('Software\Blah\BlahBlah');
end;


نه ، نشد .