PDA

View Full Version : تغییر دادن مقادیر REG_MULTI_SZ در رجیستری



Gladiator
چهارشنبه 28 آبان 1382, 22:33 عصر
با سلام

به چه شکل میشه مقادیری از نوع REG_MULTI_SZ رو توی رجیستری تغییر داد ؟؟؟


متشکرم .
گلادیاتور .

مهدی کرامتی
پنج شنبه 29 آبان 1382, 00:16 صبح
سلام.

این سوال شما باعث شد دوباره اون بخش از مغز من که مربوط به دلفی است فعال شده و شروع به کار نماید. 8)

امکانی که شما بدنبال انجام آن هستید بصورت پیش‌فرض در دلفی وجود ندارد، اما به 2 صورت قابل انجام است: استفاده از توابع API (که کمی پیچیده میباشد).
استفاده از Class ساخت اینجانب.
من برای انجام اینکار یک یونیت جدید ایجاد کردم که حاوی یک کلاس جدید بنام TRegistryEx مشتق شده از TRegistry میباشد. در این کلاس من 2 متد برای خواندن و نوشتن نوع Multi_String (یا همان REG_MULTI_SZ) تعریف کرده‌ام.

استفاده از آنها درست مانند استفاده از TRegistry است، و علاوه بر متدهای TRegistry دو متد جدید بنامهای WriteMultiString و ReadMultiString اضافه شده است. استفاده از این متدها بصورت زیر است:


procedure TForm1.Button1Click(Sender: TObject);
var lReg:TRegistryEx;
begin
lReg := TRegistryEx.Create;
lReg.RootKey := HKEY_CURRENT_USER;
lReg.OpenKey('software\mehdi', True);
lreg.WriteMultiString('Salam',memo1.text);

end;

procedure TForm1.Button2Click(Sender: TObject);
var lReg:TRegistryEx;
begin
lReg := TRegistryEx.Create;
lReg.RootKey := HKEY_CURRENT_USER;
lReg.OpenKey('software\mehdi', True);
Memo2.Text:=lReg.ReadMultiString('Salam');

end;

در فایل Zip ای که ضمیمه این پست شده است یک فایل بنام MyRegistry.pas و نمونه برنامه‌ای که طرز استفاده از آن را نشان میدهد وجود دارد.

نکته: این یونیت و نمونه برنامه آن در دلفی 7 نوشته شده است.

تصویر زیر، Registry ویندوز را در حالی که محتویات یک Memo در Registry ویندوز نوشته شده است نمایش میدهد:

<div align="center">http://www.barnamenevis.org/forum/images/articles/Registry_Multi_String.gif</div>

موفق باشید، و خوش بگذره.

Gladiator
پنج شنبه 29 آبان 1382, 08:13 صبح
با سلام مجدد

مهدی جون دستت درد نکنه واقعا بهت تبریک میگم که همچین همیشه مثل توپ آماده شلیک هستی .

باز هم تشکر میکنم . ذحمت کشیدی . ممنونم .

امیدوارم بتونم ازش استفاده کنم .

گلادیاتور .

Gladiator
پنج شنبه 29 آبان 1382, 08:17 صبح
ضمنا من این سوال رو برای این پرسیدم که به شدت نیاز به تغییر دادن آی پی توی ویندوز دارم . و مقادر آی پی بصورت REG_MULTI_SZ یا به قول شما مالتی استرینگ توی رجیستری ذخیره میشه .

باز هم متشکرم .