View Full Version : نوشتن و خواندن مقدار در رجیستری
programmermp
شنبه 02 دی 1385, 11:57 صبح
با سلام
چطوری می شه یک مقداری که در تکست باکس هست رو به عنوان یک مقدار در رجیستری
ویندوز نوشت و بعد همون مقدار رو از رجیستری بخونی و در یک تکست باکس دیگر
بریزی
با تشکر
مهدی نان شکری
شنبه 02 دی 1385, 12:52 عصر
با سلام
برای این منظور باید از Microsoft.Win32 استفاده کنید. یه مثال کوچکی نوشتم. شاید مشکلتون رو حل کنه.
zarrin_306
شنبه 02 دی 1385, 12:53 عصر
Private Sub btn_Click(...) Handles btn.Click
If txt.Text.Trim <> "" Then lst.Items.Add(txt.Text.Trim)
End Sub
Private Sub Form1_Load(...) Handles MyBase.Load
Dim Num As Integer = GetSetting(Application.ExecutablePath, "List Box (It can be anything else)", _
"List Box Count (It can be anything else)", 0)
For i As Integer = 0 To Num - 1
lst.Items.Add(GetSetting(Application.ExecutablePat h, "ListBox Items (It can be anything else)", _
"Item " & i, 0))
Next
End Sub
Private Sub Form1_Closed(...) Handles MyBase.Closed
'Saving the number of Items in the List box :
SaveSetting(Application.ExecutablePath, "List Box (It can be anything else)", _
"List Box Count (It can be anything else)", lst.Items.Count)
'Saving each item :
For i As Integer = 0 To lst.Items.Count - 1
SaveSetting(Application.ExecutablePath, "List Box Items (It can be anything else)", _
"Item " & i, lst.Items.Item(i))
Next
End Sub
programmermp
شنبه 02 دی 1385, 13:00 عصر
با سلام و تشکر
zarrin جان می شه مثال رو یک خورده جامع تر بنویسی یعنی مقدار دهی بشه
من متوجه نشدم چطوری مقدار رو توی رجیستری می نویسه یا می خونه
با تشکر
zarrin_306
یک شنبه 03 دی 1385, 12:20 عصر
دیگه برادر من دیگه از این جامع تر
ولی یه توضیح مختصر
اولا که هرجا List box بود رو به Textbox ویا نام تبدیلی آن تغییر بده
دوم اینکه
در قسمت
Dim Num As Integer = GetSetting(Application.ExecutablePath, "List Box (It can be anything else)", _
"List Box Count (It can be anything else)", 0)
For i As Integer = 0 To Num - 1
lst.Items.Add(GetSetting(Application.ExecutablePat h, "ListBox Items (It can be anything else)", _
"Item " & i, 0))
Next
از GetSetting برای بارگذاری هستش که باید در جایی که میخوای مطلب رو ازرجیستری بخونی قرار بدی
سوم اینکه
'Saving the number of Items in the List box :
SaveSetting(Application.ExecutablePath, "List Box (It can be anything else)", _
"List Box Count (It can be anything else)", lst.Items.Count)
'Saving each item :
For i As Integer = 0 To lst.Items.Count - 1
SaveSetting(Application.ExecutablePath, "List Box Items (It can be anything else)", _
"Item " & i, lst.Items.Item(i))
Next
از SaveSetting برای ذخیره مطالب در رجیستری میباشه
وقسمت اول هم که مشخصه برای پرکردن List box میباشد که اگر Textbox خالی نباشد عنوان را به Listbox میافزاید
که شما به این قسمت نیاز ندارید چرا که شما ایتم های لیست باکس و یا کمبوباکس را ذخیره نمیکنید
programmermp
پنج شنبه 21 دی 1385, 13:45 عصر
با سلام
اقا این کلید هایی که ایجاد می کنه در رجیستری از نوع (دستورهای بالا) از نوع string هست
حالا اگه من بخواهم یک کلید از نوع dword یا binary یا از نوع های دیگه ایجاد کنم چکار باید
بکنم
با تشکر
Sub Zero
پنج شنبه 21 دی 1385, 15:24 عصر
اگه من بخواهم یک کلید از نوع dword یا binary یا از نوع های دیگه ایجاد کنم چکار باید کنم
ببین دوست عزیز از Savesetting و Getsetting عموما برای ذخیره مشخصات برنامه استفاده می شه شما حتی نمیتونی مسیر بهش بدی که کجا مقادیر رو ذخیره کنه چون خودش مسیر پیش فرض داره
برای کاری که شما میخواید انجام بدید بهتره از این مثال استفاده کنید .
Imports System
Imports Microsoft.Win32
Imports Microsoft.VisualBasic
Public Class Example
Public Shared Sub Main()
' Delete and recreate the test key.
Registry.CurrentUser.DeleteSubKey("RegistryValueKindExample", False)
Dim rk As RegistryKey = Registry.CurrentUser.CreateSubKey("RegistryValueKindExample")
' Create name/value pairs.
' This overload supports QWord (long) values.
rk.SetValue("QuadWordValue", 42, RegistryValueKind.QWord)
' The following SetValue calls have the same effect as using the
' SetValue overload that does not specify RegistryValueKind.
'
rk.SetValue("DWordValue", 42, RegistryValueKind.DWord)
rk.SetValue("MultipleStringValue", New String() {"One", "Two", "Three"}, RegistryValueKind.MultiString)
rk.SetValue("BinaryValue", New Byte() {10, 43, 44, 45, 14, 255}, RegistryValueKind.Binary)
rk.SetValue("StringValue", "The path is %PATH%", RegistryValueKind.String)
End Class 'Example
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.