И снова про реестр

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

Alex[fj]
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 278
Зарегистрирован: 17.02.2007 (Сб) 20:10
Откуда: Питер

И снова про реестр

Сообщение Alex[fj] » 07.03.2007 (Ср) 21:01

Всем привет!
Вопрос такой: как создать свою веточку в реестре?
Изображение
Стараюсь быть вполне хорошим (c) Лев Толстой

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 09.03.2007 (Пт) 7:25

Получаешь через соответствующее свойство класса Registry нужный корневой ключ, далее методом CreateSubKey создешь новый ключ (ветку, как тебе удобнее именовать).
Последний раз редактировалось Viper 10.03.2007 (Сб) 7:15, всего редактировалось 1 раз.
Весь мир матрица, а мы в нем потоки байтов!

Maitris
Постоялец
Постоялец
 
Сообщения: 656
Зарегистрирован: 02.03.2005 (Ср) 21:00
Откуда: Из другой цивилизации.

Сообщение Maitris » 09.03.2007 (Пт) 13:41

Импортируешь пространство имен для работы с реестром (Imports Microsoft.Win32.Registry и Imports Microsoft.Win32)
В коде:
Dim RegKey As RegistryKey = Registry.LocalMachine.OpenSubKey("Software\MyApp", True)
RegKey.CreateSubKey("NameToCreate")
RegKey.Close
----

Alex[fj]
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 278
Зарегистрирован: 17.02.2007 (Сб) 20:10
Откуда: Питер

Сообщение Alex[fj] » 10.03.2007 (Сб) 19:14

Нефига у меня не получается! Короче, мне нужно создать ветку в HKEY_CLASSES_ROOT\... П идее меняем Registry.LocalMachine на Registry.CLASSESROOT... При компиляции орет ошибку! Добейте тему, пожалуйста!
Изображение
Стараюсь быть вполне хорошим (c) Лев Толстой

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 12.03.2007 (Пн) 8:32

Код в студию! Телепаты в отпуске

З.Ы. мож правов нет?
Весь мир матрица, а мы в нем потоки байтов!

Maitris
Постоялец
Постоялец
 
Сообщения: 656
Зарегистрирован: 02.03.2005 (Ср) 21:00
Откуда: Из другой цивилизации.

Сообщение Maitris » 12.03.2007 (Пн) 16:16

Действительно, приведи текст ошибки...
----

Alex[fj]
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 278
Зарегистрирован: 17.02.2007 (Сб) 20:10
Откуда: Питер

Сообщение Alex[fj] » 14.03.2007 (Ср) 13:54

Нафига? Там коду-то две строки! Вы у себя-то пробовали?
Вот ошибка:
NullReferenceException was unhandled
Object reference not set to an instance of an object.
Изображение
Стараюсь быть вполне хорошим (c) Лев Толстой

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 14.03.2007 (Ср) 16:17

Дык, вот и приведи эти две строки.

З.Ы. Из текста видно, что некий объект неинициализирован, но и только
Весь мир матрица, а мы в нем потоки байтов!

Alex[fj]
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 278
Зарегистрирован: 17.02.2007 (Сб) 20:10
Откуда: Питер

Сообщение Alex[fj] » 17.03.2007 (Сб) 20:12

Я про код, которого две строки... Кинте, пожалуйста его кто-нибудь себе о откомпелите...
Изображение
Стараюсь быть вполне хорошим (c) Лев Толстой

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 19.03.2007 (Пн) 8:46

интересно какой код надо откомпилить то? Телепатов то нет... Автору не судьба ли выложить тот код который у него не трудится? Желательно в объеме достаточном дл японимания того, чего же он не хочет трудицца.
Весь мир матрица, а мы в нем потоки байтов!

Alex[fj]
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 278
Зарегистрирован: 17.02.2007 (Сб) 20:10
Откуда: Питер

Сообщение Alex[fj] » 19.03.2007 (Пн) 17:28

Ну, наверно, тот код, который мне привел Maitris в этой теме. Он выше и причины писать его еще раз не вижу...
Изображение
Стараюсь быть вполне хорошим (c) Лев Толстой

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 20.03.2007 (Вт) 8:20

Alex[fj], а ты его небось дословно ввел? Ключ Software\MyApp неужто есть у тебя?
Весь мир матрица, а мы в нем потоки байтов!

Alex[fj]
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 278
Зарегистрирован: 17.02.2007 (Сб) 20:10
Откуда: Питер

Сообщение Alex[fj] » 20.03.2007 (Вт) 20:02

Да нет... Менял, вроде... Так он компелит с нужным ключом? У меня орет...
Изображение
Стараюсь быть вполне хорошим (c) Лев Толстой

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 21.03.2007 (Ср) 8:57

Сей код создает подключ для существующего ключа. Если в строке

Код: Выделить всё
Dim RegKey As RegistryKey = Registry.LocalMachine.OpenSubKey("Software\MyApp", True)


производится попытка открытия несуществующего ключа (т.е. в данном случае ключа Software\MyApp в ветке LocalMachine нет), то значение RegKey останется Nothing, после чего следующая строка

Код: Выделить всё
RegKey.CreateSubKey("NameToCreate")


естественно буде орать именно эту ошибку, ибо Nothing.
Весь мир матрица, а мы в нем потоки байтов!

Alex[fj]
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 278
Зарегистрирован: 17.02.2007 (Сб) 20:10
Откуда: Питер

Сообщение Alex[fj] » 24.03.2007 (Сб) 18:16

Неа, не пашет!
Код: Выделить всё
Dim RegKey As RegistryKey = Registry.ClassesRoot.OpenSubKey("HKEY_CLASSES_ROOT\Folder\shell", True)
        RegKey.CreateSubKey("asd")
        RegKey.Close()

Вот буквально, что прописано! Все, че надо импортировал.
Изображение
Стараюсь быть вполне хорошим (c) Лев Толстой

GAGArin
Неистовый флудер
Неистовый флудер
 
Сообщения: 1777
Зарегистрирован: 23.12.2002 (Пн) 12:46
Откуда: я тут взялся, не знаю...

Сообщение GAGArin » 24.03.2007 (Сб) 20:18

Не знаю зачем брать еще один экземпляр RegistryKey если нам не надо создавать более одного более глубокого ключа (сорри за мой французский), да и даже если надо это не убьет быстродействие. У меня лично код
Код: Выделить всё
Registry.LocalMachine.OpenSubKey("Software", True).CreateSubKey("NewKey")

Вполне работает.

Код Maitris'a впрочем тоже работает. Вероятнее всего Alex[fj]просто пишет в несуществующую ветку как и написал !Viper! однако бороться с этой проблемой сложно.

Добавлено: Да действительно маловероятно что в HKEY_CLASSES_ROOT есть еще один ключ HKEY_CLASSES_ROOT. Очень маловероятно. Я бы его убрал из пути который хочу открыть. Определенно.

Alex[fj]
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 278
Зарегистрирован: 17.02.2007 (Сб) 20:10
Откуда: Питер

Сообщение Alex[fj] » 24.03.2007 (Сб) 20:38

Спасибо! Вот так пашет! Да и тот работал бы, если бы путь правильно прописан был!

Код: Выделить всё
Dim RegKey As RegistryKey = Registry.ClassesRoot.OpenSubKey("Folder\shell", True)
Изображение
Стараюсь быть вполне хорошим (c) Лев Толстой

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 25.03.2007 (Вс) 9:02

Alex[fj] писал(а):Да и тот работал бы, если бы путь правильно прописан был!


До этого, неоднократно...
!Viper! писал(а):производится попытка открытия несуществующего ключа

!Viper! писал(а):Alex[fj], а ты его небось дословно ввел? Ключ Software\MyApp неужто есть у тебя?


Впрочем,
Alex[fj] писал(а):Неа! Мимо! Я делаю и вообще не думаю!

Так что удивление вызывает только одно - благодаря какому странному стечению обстоятельств случилось так, что Alex[fj] занимается программированием...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Maitris
Постоялец
Постоялец
 
Сообщения: 656
Зарегистрирован: 02.03.2005 (Ср) 21:00
Откуда: Из другой цивилизации.

Сообщение Maitris » 25.03.2007 (Вс) 14:50

Alex[fj]
Можешь например работать с ключом в блоке Try/End Try:
Try
Здесь открываешь ключ и возможно создаешь его подключи и значения
Catch ex As NullReferenceException
Здесь создаешь ключ, с которым работал
End Try

Также можно создавать нужные ключи при старте программы.. Если они уже существуют, то ничего не произойдет
----

Alex[fj]
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 278
Зарегистрирован: 17.02.2007 (Сб) 20:10
Откуда: Питер

Сообщение Alex[fj] » 26.03.2007 (Пн) 8:43

Maitris, я так и делал.... Но все равно спасибо за добродушие! А то тут на форуме все вундеркинды!

GSerg, мы с !Viper! просто неправильно друг друга поняли... Ну по крайней мере я не понял... GAGArin внес ясность...
И думать я, действительно, не люблю! Да и ни кто не любит! Но иногда приходиться... Да и потом, всегда ты заглядываешь, когда тему разобрали и всех поучаешь! Зашел бы сразу!
Изображение
Стараюсь быть вполне хорошим (c) Лев Толстой

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 26.03.2007 (Пн) 9:10

Кроме необходимости иногда думать надо еще иногда и внимательно читать ответы, тогда возможно проблемы была бы решена не 26.03, а хотя бы 14.03, практически на две недели раньше.
Весь мир матрица, а мы в нем потоки байтов!

Alex[fj]
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 278
Зарегистрирован: 17.02.2007 (Сб) 20:10
Откуда: Питер

Сообщение Alex[fj] » 26.03.2007 (Пн) 9:12

Учту...
Все, всем спасибо!
Изображение
Стараюсь быть вполне хорошим (c) Лев Толстой

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 26.03.2007 (Пн) 11:25

Alex[fj] писал(а):А то тут на форуме все вундеркинды!

Чесслово, ничего, кроме http://www.anekdot.ru/anekdot-98-display.html?from=837&sort=1, после этих слов не вспомнилось.

Alex[fj] писал(а):И думать я, действительно, не люблю! Да и ни кто не любит!

Если для того, чтобы чувствовать себя круто, тебе надо знать, что все остальные тоже далеки от мыслительных процессов, то это совсем не значит, что так оно и есть. Наоборот, вас таких мало, что радует.

Alex[fj] писал(а):Да и потом, всегда ты заглядываешь, когда тему разобрали и всех поучаешь! Зашел бы сразу!

1. Вопрос слишком прост.
2. Ответ был дан сразу.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Alex[fj]
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 278
Зарегистрирован: 17.02.2007 (Сб) 20:10
Откуда: Питер

Сообщение Alex[fj] » 26.03.2007 (Пн) 18:14

1. Вопрос слишком прост.

А мы, шаманы, значит на такие мелочи не распыляемся... Мы только на мозги капаем!
Да и потом, чего ты такой серьезный? Слова нельзя сказать, как три поперек! И от великих дум нужен отдых... Хоть иногда... А мы то уж подумаем!
Изображение
Стараюсь быть вполне хорошим (c) Лев Толстой

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 27.03.2007 (Вт) 7:00

Alex[fj], ответ был дан, зачем кому то заходить в топик дабы дать его еще раз?
Весь мир матрица, а мы в нем потоки байтов!

dimaboyko
Начинающий
Начинающий
 
Сообщения: 21
Зарегистрирован: 03.04.2007 (Вт) 14:00

Как добавить/удалить настройки приложения

Сообщение dimaboyko » 04.04.2007 (Ср) 3:35

[простыня неформатированного текста вырезана --tyomitch]

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 04.04.2007 (Ср) 6:19

Лучше бы ты дал эти три ссылки в виде ссылок.
Потому что читать твой неформатированный текст всё равно невозможно.
Изображение

dimaboyko
Начинающий
Начинающий
 
Сообщения: 21
Зарегистрирован: 03.04.2007 (Вт) 14:00

Сообщение dimaboyko » 04.04.2007 (Ср) 7:42

tyomitch писал(а):Лучше бы ты дал эти три ссылки в виде ссылок.
Потому что читать твой неформатированный текст всё равно невозможно.


ОК. :wink:

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 04.04.2007 (Ср) 7:55

Да и какой смысл давать эту инфу в топике с уже решенным вопросом?
Весь мир матрица, а мы в нем потоки байтов!

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 04.04.2007 (Ср) 7:57

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


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: Mail.ru [бот], Yandex-бот и гости: 39

    TopList