View Full Version : سوال: permission in registry
programmer33
دوشنبه 01 اسفند 1390, 18:15 عصر
سلام
چطور میشه در دلفی سطح دسترسی (permission ) یکی از آیتم های درون رجیستری ویندوز(مثلا odbc) را تغییر داد و برای گروه users به صورت full permission قرارداد.
با تشکر فراوان
tiphooo
دوشنبه 01 اسفند 1390, 21:11 عصر
با داشتن آدرس آیتم مورد نظر و اشنایی با نحوه مقدار دهی (اینکه مقدار از چه نوع است با کد تمیز داده شده یا عناوین) و سپس با دستور WriteString
البته WriteString ساده ترین حالت آن است و روشهای دیگر هم وجود دارد (باینری و ...) در صورت عدم آشنایی با کار با رجیستری بگویید تا راهنمایی کنم
programmer33
سه شنبه 02 اسفند 1390, 11:39 صبح
اگه لطف کنید بیشتر راهنمایی کنید ممنون میشم. آخه من با رجیستری تو دلفی کار نکردم. اما تو اینتر نت مقدار دهی آیتم های رجیستری را پیدا کردم. اما برا permission چیزی پیدا نکردم.
با تشکر از شما
tiphooo
سه شنبه 02 اسفند 1390, 14:04 عصر
در رجیستری مفاهیمی که زیاد با آن برخورد می کنید مفهوم Key و StringValue است به عبارتی شما یک نام برای Key تعریف می کنید مانند ساختFolder و سپس در Key ایجاد شده می توانید تعدادی StringValue تعریف کنید به عبارتی با ساخت Folder درون آن Folder فرضا فایلهای Text را ایجاد کرده اید که هر کدام فقط یک رشته را در خود دارند
حال اینکه شما می توانید این رشته ها را ذخیره کرده و در جاهایی که نیاز است از آن استفاده کنید
حال برای دسترسی به نوشتن و خواندن در دلفی باید به صورت زیر عمل کنید
ایتدا Registry ، Unit را در فهرست Use خود اضافه کنید
و مثلا یک Button برای نوشتن در رجیستری اضافه کنید
در کد آن به صورت زیر عمل کنید:
var
Reg: TRegistry;
begin
Reg := TRegistry.Create;
Reg.RootKey := HKEY_CURRENT_USER;
Reg.OpenKey('\TestKey', True);
Reg.WriteString('TestStringValue','Hello');
Reg.Free;
end;
در RootKey شما باید مشخص کنید که کلید شما در کدام فهرست از فهرستهای معمولا پنجگانه رجیستری وجود دارد و سپس کلید مورد نظر خود را بازکنید (اگر وجود نداشته باشد ایجاد می شود) و سپس با دستور WriteString به تعداد دلخواه در آن مسیر StringValue ایجاد کرده و آن را مقدار دهی کنید در این مثال یک کلید به نام TestKey ایجاد شده و داخل آن یک StringValue با نام TestStringValue با مقدار Hello ایجاد شده است
حال برای خواندن این مقدار در جای دیگر باید همه مراحل فوق را انجام داده و به جای WriteString به صورت زیر عمل کنید
s:=Reg.ReadString('TestStringValue');
S یک متغیر از نوع String است حال S مقدار Hello را در خود دارد
برای تغییر Permision اگر به صورت کد شده نباشد و قابل دسترسی باشد شما باید کلید آن را پیدا کرده و StringValue آن را (اگر از نوع String است چون نوعهای دیگر هم وجود دارد Binary,DWord,MultiString ,..)با StringValue دلخواه خود مقدار دهی کنید
programmer33
سه شنبه 02 اسفند 1390, 17:40 عصر
ممنون از راهنمایی کاملتون، اما من string value مربوط به permission را پیدا نکردم ممنون می شم راهنمایی کنید چطور می تونم پیداش کنم
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.