Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 | 2 |

 

  Вопрос: Реестр не запоминает:( Добавлено: 12.05.04 14:36  

Автор вопроса:  danser | ICQ: 299287824 

запись:

r.LocalMachine.CreateSubKey("SoftWare\TestValue1")
r.LocalMachine.SetValue("TestValue", Me.TextBox1.Text)

чтение:

Me.TextBox2.Text = r.LocalMachine.GetValue("TestValue")

Записывает и читает нормально, но при перегрузке компа даные с реестра удалются что ли? Как правильно написать чтобы реестр сохранялся?

 

Ответить

  Ответы Всего ответов: 18  

Номер ответа: 1
Автор ответа:
 User Unknown



Вечный Юзер!

ICQ: uu@jabber.cz 

Вопросов: 120
Ответов: 3302
 Профиль | | #1 Добавлено: 12.05.04 14:38

Что такое r?

Штатные телепаты в отпуске...

Ответить

Номер ответа: 2
Автор ответа:
 danser



ICQ: 299287824 

Вопросов: 76
Ответов: 209
 Профиль | | #2 Добавлено: 13.05.04 03:01

Dim r As Microsoft.Win32.Registry

Ответить

Номер ответа: 3
Автор ответа:
 freeloader



ICQ: 50804884 

Вопросов: 72
Ответов: 642
 Web-сайт: freeloader.folder-pro.net
 Профиль | | #3
Добавлено: 13.05.04 04:17

Imports System

Imports Microsoft.Win32

Class Reg

Public Shared Sub Main()

' Create a RegistryKey, which will access the HKEY_LOCAL_MACHINE

' key in the registry of this machine.

Dim rk As RegistryKey = Registry.LocalMachine

' Print out the keys.

PrintKeys(rk)

End Sub

Shared Sub PrintKeys(rkey As RegistryKey)

' Retrieve all the subkeys for the specified key.

Dim names As String() = rkey.GetSubKeyNames()

Dim icount As Integer = 0

Console.WriteLine("Subkeys of " & rkey.Name)

Console.WriteLine("-----------------------------------------------")

' Print the contents of the array to the console.

Dim s As String

For Each s In names

Console.WriteLine(s)

' The following code puts a limit on the number

' of keys displayed. Comment it out to print the

' complete list.

icount += 1

If icount >= 10 Then

Exit For

End If

Next s

End Sub

End Class

Пример немного не того направления, но все равно понять можно.

Более подробная информация есть в MSDN

Ответить

Номер ответа: 4
Автор ответа:
 danser



ICQ: 299287824 

Вопросов: 76
Ответов: 209
 Профиль | | #4 Добавлено: 13.05.04 10:33

Это не совсем то, мне бы на .NET ... но и на том спасибо :)

Ответить

Номер ответа: 5
Автор ответа:
 freeloader



ICQ: 50804884 

Вопросов: 72
Ответов: 642
 Web-сайт: freeloader.folder-pro.net
 Профиль | | #5
Добавлено: 13.05.04 11:10

imports microsoft.win32

Dim RK As RegistryKey = Registry.LocalMachine.CreateSubKey("Software\TEST")

RK.SetValue("VB .NET", "Registry")

'RK.DeleteValue("VB .NET")

создает и удаляет, должно работать...

Ответить

Номер ответа: 6
Автор ответа:
 danser



ICQ: 299287824 

Вопросов: 76
Ответов: 209
 Профиль | | #6 Добавлено: 13.05.04 18:43

Смотри проблему (первый вопрос). При загрузке формы я читаю как указано выше (первый вопрос) если r.LocalMachine.GetValue("TestValue") пуст то делаю запись(первый вопрос) .
Когда при включении компа я первый раз загружаю програму то даных в реестре нет, я их вношу и потом сколько раз не запускаю прогу даные в реестре есть. Но при перегрузке компа даные с реестра тю-тю - приходится наново вносить...
Ведь реестр и для того служит что б что-то по немножку сохранять между загрузками ОС...(или я ошыбаюсь?).

 

Ответить

Номер ответа: 7
Автор ответа:
 freeloader



ICQ: 50804884 

Вопросов: 72
Ответов: 642
 Web-сайт: freeloader.folder-pro.net
 Профиль | | #7
Добавлено: 14.05.04 03:03

Первый раз с такой проблемой сталкиваюсь такой,

а насчет того ответа, да поторопился, не в ник в суть вопроса,

но если тебе надо хранить настройки, не что то важное, а настройки,

то можно попробовать хранить в XML, видел об этом на gotdotnet.ru, раздел

WinForms

Ответить

Номер ответа: 8
Автор ответа:
 danser



ICQ: 299287824 

Вопросов: 76
Ответов: 209
 Профиль | | #8 Добавлено: 15.05.04 00:02

Ты наверно под XML подразумеваешь создать какой то файл и туда запихать все чо надо (в формате XML) если да, то я поначалу тоже так думал но для 2-3 значений которые мне надо сохранить думаю реестр больше подходит...

И нащет важного: настройки в програме - это важно

Ответить

Номер ответа: 9
Автор ответа:
 freeloader



ICQ: 50804884 

Вопросов: 72
Ответов: 642
 Web-сайт: freeloader.folder-pro.net
 Профиль | | #9
Добавлено: 15.05.04 02:24

Да я имел ввиду именно это.

А если попобовать вбшной функцией SaveSetting and GetSetting?

Каков результат, все тоже?

Ответить

Номер ответа: 10
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #10
Добавлено: 15.05.04 02:54

> А если попобовать вбшной функцией SaveSetting and GetSetting?

Разве эта гадость сохранилась в VB.NET???

Ответить

Номер ответа: 11
Автор ответа:
 freeloader



ICQ: 50804884 

Вопросов: 72
Ответов: 642
 Web-сайт: freeloader.folder-pro.net
 Профиль | | #11
Добавлено: 15.05.04 03:04

Еще как сохранилась.

Ответить

Номер ответа: 12
Автор ответа:
 danser



ICQ: 299287824 

Вопросов: 76
Ответов: 209
 Профиль | | #12 Добавлено: 15.05.04 06:20
На  счет  SaveSetting and GetSetting-  то не знаю что это, если сможеш кинь небольшой примерчик на .NET, а там я уж...

Ответить

Номер ответа: 13
Автор ответа:
 freeloader



ICQ: 50804884 

Вопросов: 72
Ответов: 642
 Web-сайт: freeloader.folder-pro.net
 Профиль | | #13
Добавлено: 15.05.04 06:36

Dim a As String

SaveSetting("sss", "aaa", "ddd", "uuu")

a = GetSetting("sss", "aaa", "ddd")

MessageBox.Show(a)

' получишь uuu запись идет в реестр

Ответить

Номер ответа: 14
Автор ответа:
 freeloader



ICQ: 50804884 

Вопросов: 72
Ответов: 642
 Web-сайт: freeloader.folder-pro.net
 Профиль | | #14
Добавлено: 15.05.04 07:22
Ошибка!!!!
r.LocalMachine.CreateSubKey("SoftWare\TestValue1")  -- тебя не смущает это строка, а то что все время это ключ перезаписывается???:)
 
вот решение кинь две кнопки!
в первую кинь вот это

Dim RK As RegistryKey = Registry.LocalMachine.OpenSubKey("Software", True)

Dim a As String

RK.SetValue("TEST", "as")

а на вторую вот это

Dim RK As RegistryKey = Registry.LocalMachine.OpenSubKey("Software", False)

Dim a As String

a = CStr(RK.GetValue("TEST"))

MessageBox.Show(a)

И можеш смело хоть сто раз перезагружаться, ведь когда ты считывал значения, ты наверняка опять создавал ключ и считывал в буквальном смысле ничего.

Ответить

Номер ответа: 15
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #15
Добавлено: 15.05.04 08:50
В .Net для совместимости оставлены все или почти все функции VB6...
Только юзать их крайне не рекомендуются, ибо нефик.

Ответить

Страница: 1 | 2 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам