تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
التعامل مع الرجستري باستخدام فيجوال بيسك دوت نت
#1
كاتب الموضوع : حميد ربيع


بسم الله الرحمان الرحيم

التعامل مع الرجستري باستخدام فيجوال بيسك دوت نت


اذا كنت مهتما و تود اكتشاف هذا العالم ، سيكون هذا الدرس ان شاء الله مدخلك وبداية طريقك لاكتشاف هذا العالم.
ملاحظة: هذا الدرس موجه الي المبتدئين والمتوسطين وهو تعليمي وليس احترافي، كما سبق القول فهو فقط مدخل مبسط .
ﻹستعاب هذه الدروس جيدا سنعمل علي مثال بسيط يقربنا من فهم الشيفرات المستعلة ويزيل عنا عبئ البحث بين صفحات الكتب ومتاهة روابط المواقع والمنتديات التعليمية المليئة بالدروس والكتب و في الأخر لا تجد ما تبحث عنه،وباختصار أرجو من الله أن يكون هذا الدرس المتواضع الحل الشافي لمعناتك،ويكون فاتحة خير ﻹستعابك مفاهيم أخرى،والله ولي التوفيق.


للرجستري استعملات عدة من بينها حفظ اعدادات البرنامج و حفظ بعض القيم لاستعمالها لاحقا و غيرها ...

أولا: قم بانشاء مشروع جديد بعنوان : lesson Registry .
وصمم الفورم علي الشكل التالي :


قم بتغير خاصية Name للنص الأول الي UserName و النص الثاني الي PassWord .
+ كتابة الشيفرات .
* أولا يجب عليك استدعاء مجال الأسماء Microsoft.Win32
وذلك علي الشكل التالي
كود :
[color=blue]Imports[/color] Microsoft.Win32
* ثانيا تعريف متغير سنستعمله للوصول الي الرجستري :

كود :
Dim RecSami As RegistryKey = Registry.CurrentUser.CreateSubKey("Key Sami")
كما تلاحظ عرفت متغير باسم RecSami وأنشئت مفتاح باسم Key Sami داخل CurrentUser , ويمكنك إختيار ما تشاء من الأماكن لانشاء المفتاح كما هو موضح في الصورة أسفله .


+ كتابة الشيفرات :
دوبل كليك علي زر إنشاء حساب أو Create Account .
وبعد ذلك نقوم بكتابة الشفرة التالية :


كود :
If UserName.Text = "" Or PassWord.Text = "" Then
MessageBox.Show(" The UserName Or PassWord Text Is Empty Please Try Again", "Create Account")
Else
RecSami.SetValue("Username", UserName.Text)
RecSami.SetValue("PassWord", PassWord.Text)
End If
+إذا كان عندك بعض الغموض اقرأ تحليل الشيفرة وإذا كنت عكس ذلك فأكمل المشوار.
+تحليل الشيفرة:


كود :
If UserName.Text = "" Or PassWord.Text = "" Then
MessageBox.Show(" The UserName Or PassWord Text Is Empty Please Try Again", "Create Account")
اذا كان نص كتابة اسم المستخدم أو رمز الدخول أو كلاهما معا فارغا سيضهر البرنامج رسالة تخبر المستخدم أن نص كتابة اسم المستخدم أو رمز الدخول فارغ .

كود :
Else
RecSami.SetValue("Username", UserName.Text)
RecSami.SetValue("PassWord", PassWord.Text)
End If
ثانيا وبعد أن تحقق من نصوص الكتابة ينشئ حساب باسم Key Sami ويضع فيه اسم المستخدم و رمز الدخول الموجودةفي نصوص الكتابة.

وهذه هي النتيجة :


كما تلاحظ بالفعل تمكنا من الكتابة داخل الرجستري قيم ستحفظ بداخله يمكن التعديل عليها .

الشيفرات الخاصة بالفورم1 ستكون علي الشكل التالي :

كود :
Imports Microsoft.Win32
Public Class Form1
Dim RecSami As RegistryKey = Registry.CurrentUser.CreateSubKey("Key Sami")

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'code Create Account
If UserName.Text = "" Or PassWord.Text = "" Then
MessageBox.Show(" The UserName Or PassWord Text Is Empty Please Try Again", "Create Account")
Else
RecSami.SetValue("Username", UserName.Text)
RecSami.SetValue("PassWord", PassWord.Text)
End If

End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
'code cancel
End
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click


'code button Ok
If UserName.Text = "" Or PassWord.Text = "" Then
MessageBox.Show(" The UserName Or PassWord Text Is Empty Please Try Again", "Enter To My Account")
Else
If UserName.Text = RecSami.GetValue("UserName") And PassWord.Text = RecSami.GetValue("PassWord") Then
Form2.Show()
Me.Hide()
Else
MessageBox.Show("The UserName Or PassWord Text Is Incorrect Please Try Again", "Enter To My Account")
End If
End If

End Sub
End Class
ثانيا:
أضف فورم 2 وصممه علي الشكل التالي:


قم بتغير خاصية Name للنص الأول الي UserName و النص الثاني الي PassWord و النص التالث الي txtWrite
كما العادة استدعي مجال الأسماء Microsoft.Win32
وقم بتعريف نفس المتغير الذي استعملناه في الفورم1


كود :
Dim RecSami As RegistryKey = Registry.CurrentUser.CreateSubKey("Key Sami")
+ وفي الفورم لود (Form2_Load ) أكتب الشفرات التالية :

كود :
Private Sub Form2_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

On Error Resume Next
UserName.Text = RecSami.GetValue("UserName")
PassWord.Text = RecSami.GetValue("PassWord")
txtWrite.Text = RecSami.GetValue("txtWrite")

End Sub
ومحتواها أننا نعرض اسم المستخدم و رمز الدخول في أداتي النص 1 و2 و النص المحفوظ في الرجستري مسبقاالي أداة النص 3 "txtWrite"
+ الأن نضع شفرة الحفظ Save .


كود :
RecSami.SetValue("txtWrite", txtWrite.Text)
و الهدف منها حفظ ما تغير في أداة txtWrite.Text

*ربما قد تقول لي ماذا لو نسي المستخدم الضغط علي زر الحفظ وأغلق البرنامج وكان قد عدل علي أدة النص ، أقول لك مصيبة فلن يتم حفظ ما تغير ، ولتجنب هذا المشكل أقترح عليك حلا يمنع وقوع هذا الخطئ .
+ استعرض أحداث الفورم و أنقر علي FormClosed وأكتب الشفرة التالية :


كود :
Private Sub Form2_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed

RecSami.SetValue("txtWrite", txtWrite.Text)

End Sub


بهذا عند اغلاق المستخدم البرنامج سيتم حفظ ما تغير .
+ كتابة الشفرة الخاصة باستعراض الصورة Browse
أولا أضف أداة OpenFileDialog وغير خاصية Name الي open


كود :
open.Title = "Browse Picture"
open.ShowDialog()
Picture.Image = Image.FromFile(open.FileName)
RecSami.SetValue("Picture", open.FileName)
+ وفي الفورم لود أضف الشفرة التالية :

كود :
Picture.Image = Image.FromFile(RecSami.GetValue("Picture"))
+ مناقشة الشفرات السابة :
أداة OpenFileDialog تستخدم لاستعراض الملفات و الصور أي جلبها من علي الحسوب ، أود أن أشرح لك تفاصيل هذه الأداة ولكن لا أود أن أضيف سطور إضافية لهذا الكتاب لأنه يوجد الكثير لأخبرك عن هذه الأداة، وفي اعتقادي أنك ستفهم الشفرة السابة بمجهودك الخاص .
+ والنتيجة ستون علي الشكل التالي :


الشيفرات الخاصة بالفورم2 ستكون علي الشكل التالي :

كود :
Imports Microsoft.Win32
Public Class Form2
Public RecSami As RegistryKey = Registry.CurrentUser.CreateSubKey("Key Sami")
Private Sub Form2_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed

RecSami.SetValue("txtWrite", txtWrite.Text)

End Sub

Private Sub Form2_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
On Error Resume Next
UserName.Text = RecSami.GetValue("UserName")
PassWord.Text = RecSami.GetValue("PassWord")
txtWrite.Text = RecSami.GetValue("txtWrite")
Picture.Image = Image.FromFile(RecSami.GetValue("Picture"))

End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
'code button Exit
End

End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
'code button Empty
txtWrite.Text = ""

End Sub

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
'code button save
RecSami.SetValue("txtWrite", txtWrite.Text)

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
open.Title = "Browse Picture"
open.ShowDialog()
Picture.Image = Image.FromFile(open.FileName)
RecSami.SetValue("Picture", open.FileName)

End Sub
End Class

تحميل المشروع

أرفقت مشروعين الاول ب vb.net 2005 ; والثاني ب vb.net 2008
تحميل الدرس
2005
2008

}}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [درس فيديو] تحذير هام في التعامل مع For و Try ali.alfoly 3 114 07-12-16, 12:43 AM
آخر رد: silverlight
Wink [مقال] كفية التعامل مه الجملة الشرطية IF alims 8 3,528 19-11-16, 01:06 AM
آخر رد: LoveVb
  اصنع محرر أكواد خاص بك باستخدام الأداة RichTextBox السكر المغرور 8 1,536 03-09-16, 07:59 PM
آخر رد: tryold
Information تحميل برنامج الفيجوال بيسك 2010 download visual basic 2010 mohamed atef2018 0 265 09-07-16, 08:30 PM
آخر رد: mohamed atef2018
  [سؤال] اريد كود بالفيجوال بيسك 2008 يقراء سريال المازربورد nabil.1710 5 632 13-06-16, 12:16 AM
آخر رد: محمد سالم المحترف
  [درس فيديو] تشغيل اوامر Run من البرنامج & مثال غلق الويندوز بعد وقت محدد باستخدام VB.net أحمد النجار 1 543 23-12-15, 04:26 AM
آخر رد: الماجيك مسعد
Big Grin [مقال] كفية التعامل مع حلقة التكرار For , For Each alims 8 3,493 01-11-15, 11:51 PM
آخر رد: adel27
  [VB.NET] التشفير باستخدام خوارزمية rsa alking-0999 10 1,393 08-07-15, 04:24 PM
آخر رد: مبرمج بلا حدود
  [VB.NET] التعامل مع الصور في vb net أحمد النجار 2 1,018 03-06-15, 10:45 PM
آخر رد: أحمد النجار
  حصريا لمنتدى فيجوال بيسك لكل العرب شرح مكتبه علي سبايسى (alysbisydata) alimse 9 2,515 03-01-15, 04:10 PM
آخر رد: abulayth

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم