التنبيهات التالية ظهرت :
Warning [2] count(): Parameter must be an array or an object that implements Countable - Line: 864 - File: showthread.php PHP 7.4.33 (Linux)
File Line Function
/showthread.php 864 errorHandler->error



تقييم الموضوع :
  • 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

}}}
تم الشكر بواسطة: asemshahen5 , Emam emam


الردود في هذا الموضوع
التعامل مع الرجستري باستخدام فيجوال بيسك دوت نت - بواسطة Raggi Tech - 02-10-12, 11:19 AM

المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [درس فيديو] اضافة ملف مشغل لصفحة html و جافاسكريبت و سي اس اس بفيجوال بيسك.(قد لا اكون اصبت بالتع سعود 1 923 17-04-23, 08:31 AM
آخر رد: سعود
  نظرة على DropBox SDK و التعامل معها +برنامج رفع و تحميل ملفات ابو ليلى 4 4,880 08-09-22, 11:54 AM
آخر رد: saif2023
  طريقة عمل نسخة لتثبيت فيجوال ستوديو بدون نت معاند الحظ 12 8,136 11-12-21, 04:26 PM
آخر رد: اسلام الكبابى
  [مقال] إضافة تقارير Crystal report إلى فيجوال 2010 اسامه الهرماوي 3 5,330 05-10-21, 01:38 PM
آخر رد: mohameddahab867
  ربط الفيجوا ل بيسك 2010 بأكسيس 2010 اسلام الكبابى 0 1,827 04-08-21, 01:27 AM
آخر رد: اسلام الكبابى
  التعامل مع الصور Images في بيئة الدوت نت باستخدام +GDI - مقدمة RaggiTech 3 5,867 30-07-21, 05:14 PM
آخر رد: kebboud
Lightbulb [مقال] التعامل مع ملفات اوفيس من خلال مكتبة NPOI ابو ليلى 2 4,197 01-07-21, 11:42 AM
آخر رد: kebboud
Lightbulb [مقال] التعامل مع اختصارات الملفات Shortcuts Magic Sword 2 4,420 01-10-20, 11:36 AM
آخر رد: abomo3ath
  [مشروع] مكتبة برمجية بلغة الفيجوال بيسك aljzazy 4 3,785 23-05-20, 02:12 PM
آخر رد: asemshahen5
  [VB.NET] برنامج ستايلات للفيجوال بيسك DK-x 2 5,964 14-08-19, 07:51 PM
آخر رد: أمجد وضاح

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


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