Saudi Arabia Russian Federation Germany United Kingdom

امکانات ویژه کاربران

ارسال خبر
ارسال لینک
ارسال مقاله

ورود و خروج

نام کاربری

کلمه عبور

مرا به ياد داشته باش
فراموش کردن کلمه عبور
ثبت نام نكرده ايد؟ عضویت

جستجو در مطالب سایت

لینک RSS سایت

آخرین اخبار سایت INTEL
Intel® Products

آمار سايت

عضو: 263
اخبار: 730
لینک ها: 7
بازدیدکنندگان: 20564514
50 میهمان حاضرند
موقعیت کاربران
Locations of visitors to this page
آخرين بروز رساني :03 دي 1390 ساعت : 00:36
Site Monitoring

 

website uptime

Free PageRank Checker


کار با رجیستری ویندوز چاپ ارسال به دوست
رای کاربران: / 0
ضعیفعالی 
1388/03/21 ساعت 17:43:27

اهمیتی که رجیستری در یک سیستم دارد ایجاب می نماید تا هر برنامه نویسی برای کارایی بهتر با آن آشنایی داشته باشد. در این فرصت در مورد چگونگی کار با رجیستری ویندوز در محیط VB.NET مطالبی عنوان خواهد شد.

قبل از شروع آموزش در مورد ساختار رجیستری ویندوز توضیحات کوتاهی ارائه می شود.

 

آشنایی با رجیستری:

رجیستری وبندوز یك پایگاه داده با ساختار درخت واره است، كه از آن برای ذخیره و بازیابی تنظیمات پیكربندی های موجود در ویندوز 32 بیتی استفاده می شود. سلسله مراتب Registry از عناصر زیر تشکیل شده است:

1 )  HKEY_CLASSES_ROOT (HKCR)

HKCR اطلاعات مربوط به فایل را در خود نگه می دارد. به این ترتیب که چه نوع فایل هایی با چه نوع برنامه ای کار می کند. به عنوان مثال در این قسمت است که مشخص می شود فایل با پسوند txt با نرم افزار notepad باز می شود. HKCR تعاریف هر یک از اشیاء موجود در محیط ویندوز را نیز در خود نگه می دارد.

2 )  HKEY_CURRENT_USER (HKCU)

HKCU حاوی پروفایل کاربری است که در حال حاضر از ویندوز استفاده می کند. یک پروفایل سیستم، سخت افزار و سیستم های برنامه سفارشی سازی شده برای یک کاربر خاص را شامل می شود. تمامی این اطلاعات در یک Hive با نام USER.DAT ذخیره می شوند.

3 )  HKEY_LOCAL_MACHINE (HKLM)

HKLM ورودی های CPU، گذرگاه سیستم و سایر اطلاعات پیکربندی سخت افزاری به وسیله ویندوز در هنگام شروع ویندوز را شامل می شود.

4 )  HKEY_USERS (HKU)

HKU اطلاعات پروفایل برای کاربران محلی کامپیوتر را شامل می باشد. حداقل دو ورودی در HKU ظاهر می شود. اولین ورودی Default که حاوی گروه پیش فرض تنظیم ها که برای کاربرانی است که بدون پروفایل به سیستم وارد می شوند. دومین ورودی که آنرا همیشه در HKU مشاهده می کنید Administrator توکار است.

5 )  HKEY_CURRENT_CONFIG (HKCC)

HKCC اطلاعات مربوط به پروفایل سخت افزار در حال استفاده و اطلاعات وسیله ای که در خلال شروع ویندوز جمع آوری شده است را نگه می دارد.

 

هر کدام از این قسمتها شامل تعدادی زیر کلیدها و داده ها به صورت تودرتو و سلسله مراتبی هستند. اگر ساختار رجیستری ویندوز را با سیستم فایل آن مقایسه کنیم، کلیدها با فولدرها و داده ها با فایلها متناظر می شوند. همانطور که فولدرها برای دسته بندی فایلها به کار می روند، کلیدها هم برای دسته بندی داده های رجیستری استفاده می شوند. داده های رجیستری هم همانند فایلها حاوی اطلاعات مورد نیاز سیستم و یا کاربر هستند. هر کلید خود می تواند شامل چند زیر کلید باشد و . . .

با این معرفی اجمالی از رجیستری ویندوز شیوه کار با آن را توسط VB.NET توضیح می دهیم.

 

توجه:

قبل از هر تغییری در رجیستری ویندوز حتما از آن نسخه پشتیبان تهیه كنید. برای اینکار می توانید از نرم افزار Registry Editor - که به صورت رایگان همراه ویندوز نصب می شود - استفاده کنید.

 

شروع برنامه نویسی . . .

قبل از هر کاری باید متغیری از نوع رجیستری ویندوز تعریف کنیم:

Dim regKey As RegistryKey

کلاس RegistryKey مایکروسافت دات نت برای کار با رجیستری ویندوز طراحی شده است. این کلاس حاوی متدها و خصوصیاتی برای کار کردن راحت و بدون دردسر با رجیستری است.

1- ایجاد یک زیرکلید (Sub Key):

فرض کنید قصد داریم در قسمت Local_Machine رجیستری ویندوز و در زیرکلید Software یک کلید جدید با نام Mahdi ایجاد نمائیم. برای این کار ابتدا با متد OpenSubKey وارد کلید Software می شویم:

regKey = Registry.LocalMachine.OpenSubKey("Software", True)

پارامتر اول حاوی نام و مسیر کلید است. دومین پارامتر مشخص می کند که آیا امکان نوشتن در کلید (Writable) وجود داشته باشد یا نه. پس از این که وارد قسمت مورد نظر شدیم  کلید مورد نظرمان را به کمک متد CreateSubKey ایجاد می نمائیم:

regKey.CreateSubKey("Mahdi")

و در پایان امکان دسترسی متغیر تعریف شده را به رجیستری با متد Close لغو می کنیم (این عمل متناظر با بستن فایل پس از خواندن اطلاعات از آن است).

regKey.Close()

2- ایجاد و مقدار دهی یک داده:

در این مرحله قصد داریم یک داده با مقدار رشته ای (String Value) ایجاد کرده، و به آن مقدار بدهیم. ابتدا زیرکلید مربوطه را  باز می کنیم:

regKey = Registry.LocalMachine.OpenSubKey("Software\Mahdi", True)

از دستور زیر برای ایجاد داده رشته ای و مقداردهی آن استفاده می کنیم:

regKey.SetValue("Abbaspour", "Shahmersi")

regKey.Close()

دستور فوق یک مقدار رشته ای با نام Abbaspour و مقدار Shahmersi ایجاد می نماید! پارامتر اول متد SetValue نام داده (متناظر با اسم متغیر)، و پارامتر دوم مقدار آن را مشخص می کند. نوع این مقدار می تواند یکی از انواع استاندارد قابل قبول رجیستری ویندوز باشد (این نوع ها عبارتند از: String, Binary, DWORD, Multi-String, Expandable String). در صورتی که نام داده ذکر شده از قبل در کلید موجود باشد مقدار آن به مقدار جدید تغییر می کند.

3- خواندن مقدار یک داده:

برای خواندن مقدار یک داده رجیستری از متد GetValue استفاده می شود:

Dim Name As String

regKey = Registry.LocalMachine.OpenSubKey("Software\Mahdi", True)

Name = regKey.GetValue("Abbaspour").ToString()

regKey.Close()

این متد نام داده را دریافت کرده و مقدار آن را به صورت یک شیء (Object) باز می گرداند. در صورتی که داده عنوان شده موجود نباشد تهی (در وی بی دات نت Nothing) به عنوان نتیجه برگشت داده می شود.

4- حذف یک زیرکلید:

برای حذف یکی زیرکلید از متد DeleteSubKey به صورت زیر استفاده می کنیم:

regKey = Registry.LocalMachine.OpenSubKey("Software", True)

regKey.DeleteSubKey("Mahdi", False)

regKey.Close()

پارامتر اول متد نام زیرکلید را مشخص می کند. با False قرار دادن پارامتر دوم در صورتی که زیر کلید عنوان شده موجود نباشد برنامه بدون ایجاد خطا به کار خود ادامه می دهد. اگر از True استفاده می کردیم و زیرکلید هم وجود نداشت، یک استثناء (Exception) تولید می شد.


هر کدام از متدهای فوق چندین نسخه سربارگذاری شده (Overloaded) دیگر نیز دارند. علاوه بر اینها متدها و خصوصیتهای بسیار دیگری نیز برای کار با رجیستری ویندوز در کلاس RegistryKey دات نت موجود هستند. برای آشنا شدن با این متدها و اطلاعات بیشتر ما MSDN مایکروسافت را برای مطالعه پیشنهاد می کنیم.

 

 منبع: Aachp.ir


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

:: مطلب پيشنهادي ::

 
Persian Language Edited By PersianComp.coM