رجیستری در VB.NET
شروع کار با رجیستری
مسلماً در یک برنامه کاربردی به کرات نیاز پیدا می شود که داده ای را در رجیستری نوشته و یا از
رجیستری بخوانید . قبلاً در ویژوال بیسیک باید با استفاده از توابع API و پیاده سازی مقادیر نسبتاً حجیمی از کد این نیاز را برآورده می ساختید . اما در چهارچوب دات نت نیازی نیست اینگونه کار های پایه ای را خودتان انجام دهید . مایکروسافت این امکان را در قالب کلاس ها و توابع چهارچوب دات نت در اختیار شما قرار داده است.برای شروع کار با رجیستری ابتدا فضای اسمی Microsoft.Win 32 را به برنامه اضافه کنید
Imports
Microsoft.Win32سپس یک متغیر به صورت زیر تعریف کنید
Dim
Reg As RegistryKeyگشودن مسیر های مختلف رجیستری
برای گشودن شاخه های مختلف رجیستری باید از متد OpenSubKey فیلد های Registry استفاده کنید و مقدار برگشتی را به شیی از نوع RegistryKey
نسبت دهید.برای گشودن شاخه های مختلف رجیستری می توانید از فیلد های دیگری نیز استفاده کنید
. لیست این فیلد ها به همراه مسیر مربوطه در رجیستری در لیست زیر آمده است.مسیر در رجیستری فیلد مربوطه
ClassesRoot HKEY_CLASSES_ROOT
CurrentConfig HKEY_CURRENT_CONFIG
CurrentUser HKEY_CURRENT_USER
DynData HKEY_DYN_DATA
LocalMachine HKEY_LOCAL_MACHINE
PerformanceData HKEY_PERFORMANCE_DATA
Users HKEY_USERS
برای درک بهتر این عمل به مثال زیر توجه فرمایید
:("Reg = Registry.CurrentUser.OpenSubKey("Software\Microsoft\Windows
بعد از آماده سازی شی مورد نظر از متد OpenSubKey استفاده کنید
. این متد یک آرگومان می پذیرد که نام زیر شاخه مورد نظر است. شکل این متد به صورت زیر است:(Reg.OpenSubKey(KeyName
صورت های متد OpenSubKeyPublic Function OpenSubKey(ByVal name As
String) AsMicrosoft
.Win32.RegistryKey(Public Function OpenSubKey(ByVal name As
String, ByVal writable As BooleanAs
Microsoft.Win32.RegistryKeyname :نام زیر شاخه مورد نظر
writable : اگر این مقدار True باشد آنگاه شما قادر به نوشتن در زیر شاخه باز شده خواهید بود
. در غیر اینصورت این اختیار را نخواهید داشت.البته این متد 2 صورت دیگر نیز دارد که به علت رعایت مختصر بودن مقاله از آنها صرف نظر شده است
.خواندن اطلاعات از رجیستری
برای خواندن اطلاعات از یک ورودی در رجیستری می توانید ار متد GetValue استفاده کنید
. این متد سه حالت مختلف دارد که دو حالت پر کاربرد را در زیر مشاهده می کنید.Public Function
GetValue(ByVal name As String) As(Public Function
GetValue(ByVal name As String, ByVal defaultValue AsAs
name : نام کلید مورد نظر
defaultValue : مقدار پیش فرض
(در صورت موجود نبودن ورودی مورد نظر تابع ایت مقدار را بر می گرداند)نوشتن اطلاعات در رجیستری
به منظور نوشتن اطلاعات در رجیستری می توانید از متد SetValue استفاده کنید
. صورن این متد به صورت زیر است.(Public Sub
SetValue(ByVal name As String, ByVal value Asname : نام کلید مورد نظر
Value : مقداری که باید در رجیستری نوشته شود
.بستن شی رجیستری
در هنگامی که به شی رجیستری نیازی نداشتید بهتر است آن را ببندید تا حافظه مورد استفاده توسط این شی آزاد شود . با استفاده از متد Close می توانید این شی را ببندید
. صورت این متد به صورت زیر است.()Reg.Close
چند مثال
یک تابع برای خواندن مقادیر از رجیستری
_ , Public Function
GetValue(ByVal KeyPath As String_ , ByVal
KeyName As String= Optional ByVal
DefaultValue As String_ (vbNullString
As
Dim
Reg As RegistryKeyTry
(Reg
= Registry.CurrentUser.OpenSubKey(KeyPath(Return
Reg.GetValue(KeyName, DefaultValue()Reg
.CloseCatch
ex As Exception!Could not read"
Return
DefaultValue()Reg
.CloseEnd Try
End Function
یک تابع برای نوشتن مقادیر در رجیستری
_ , Public Sub
SetValue(ByVal KeyPath As String_ , ByVal
KeyName As String(ByVal
Value As StringDim
Reg As RegistryKeyTry
"create key if not exists(Registry
.CurrentUser.CreateSubKey(KeyPathCatch
: End TryTry
(Reg
= Registry.CurrentUser.OpenSubKey(KeyPath, True(Reg
.SetValue(KeyName, Value()Reg
.CloseCatch
ex As Exception!Could not write"
End Try
End Sub
SQL VB.NET ASP.NET J HTML C# C++ C.NET VB6 .NET
کتاب رجیستری ویندوز
این کتاب به زبان انگلیسی می باشد که در آن مفاهیم و تکنیک های رجیستری به خوبی توضیح داده شده است.
اگر در خواندن کتاب های انگلیسی مشکل دارین فقط کافیه همت کنین و از یک کتاب به کمک دیکشنری شروع کنید.بعد از خواندن چند کتاب کاملا مسلط خواهیدشد. به علاوه خواندن کتاب های علمی به زبان انگلیسی آسان تر است .
120 ترفند کاربردی رجیستری ویندوز xp
آموزش asp.net2 به زبان فارسی
(خلاصه و مفید می گویم)
ادامه مطلب...
نویسنده: ابوالفضل سالمی(پنج شنبه 86/11/18 :: ساعت 10:11 صبح)