Как переименовать ключ реестра

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
GM
programador
programador
 
Сообщения: 1427
Зарегистрирован: 24.06.2003 (Вт) 15:56
Откуда: 194.67.52.100

Как переименовать ключ реестра

Сообщение GM » 25.09.2004 (Сб) 1:46

Как переименовать ключ реестра, (:!: не значение :!:)? Можна удалить старый ключ, и создать такой же новый, но нет ли другого способа?
الفيجوال بيسك الرابح

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

Сообщение GSerg » 25.09.2004 (Сб) 13:53

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

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

Сообщение tyomitch » 25.09.2004 (Сб) 14:02

GSerg писал(а):Мне так кажется, что нельзя.

Подлый RegEdit же как-то может?
Хотя функции такой я тоже не нашёл.
Изображение

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

Сообщение GSerg » 25.09.2004 (Сб) 14:07

А ты почём знаешь, что подлый RegEdit не удаляет и создаёт? :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

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

Сообщение tyomitch » 25.09.2004 (Сб) 14:16

Вот, кстати, как это предлагают делать: http://www.hbsoft.de/net/tipps/renreg.aspx
Весьма, весьма подло :-)

А RegEdit, действительно, оказывается, подлый. Вот авторитетное признание его подлости: http://groups.google.com/groups?selm=32 ... put=gplain
И ещё: http://groups.google.com/groups?selm=32 ... put=gplain
Автор этих мессаг - Рэймонд Чен - один из разработчиков Windows, так что в его авторитетности сомнений быть не может :-)
Изображение

SHURUP
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 440
Зарегистрирован: 15.09.2004 (Ср) 14:24
Откуда: Ирпень, Украина

Сообщение SHURUP » 25.09.2004 (Сб) 14:23

вот фрагмент отчета regMonitor-a о переименовании раздела name1 на name2.
Код: Выделить всё
regedit.exe   OpenKey         HKCU\name1          SUCCESS
regedit.exe   OpenKey         HKCU\name2          NOTFOUND
regedit.exe   CreateKey       HKCU\name2          SUCCESS
regedit.exe   EnumerateValue  HKCU\name1\papram1  SUCCESS
regedit.exe   QueryValue      HKCU\name1\papram1  SUCCESS
regedit.exe   SetValue        HKCU\name2\papram1  SUCCESS
regedit.exe   EnumerateValue  HKCU\name1          NOMORE
regedit.exe   EnumerateKey    HKCU\name1          NOMORE
regedit.exe   CloseKey        HKCU\name1          SUCCESS
regedit.exe   CloseKey        HKCU\name1          SUCCESS
regedit.exe   OpenKey         HKCU\name1          SUCCESS
regedit.exe   QueryKey        HKCU\name1          SUCCESS
regedit.exe   EnumerateKey    HKCU\name1          NOMORE
regedit.exe   CloseKey        HKCU\name1          SUCCESS
regedit.exe   OpenKey         HKCU\name1          SUCCESS
regedit.exe   DeleteKey       HKCU\name1          SUCCESS
regedit.exe   CloseKey        HKCU\name1          SUCCESS
С переименованием параметров - аналогично.
Нам чужого не надо, но своё мы возьмем, чьё бы оно ни было...

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

Сообщение GSerg » 25.09.2004 (Сб) 14:24

В принципе, если подумать, то это правильно. Реестр используется для хранения настроек, так нафига переименовывать папку с оными? :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

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

Сообщение tyomitch » 25.09.2004 (Сб) 14:29

Например, продукт Foo компании Bar хранил свои настройки в HKEY_CURRENT_USER\Software\Bar\Foo
Потом компания переименовалась, или была куплена другой, и новая версия продукта - Foo v2 - уже была выпущена компанией MacroHard.
При установке она вполне резонно желает просто переименовать ключ HKEY_CURRENT_USER\Software\Bar\Foo в HKEY_CURRENT_USER\Software\MacroHard\Foo, чтобы сохранить старые настройки. Вместо этого, она вынуждена либо хранить их в старом ключе с названием несуществующей компании, либо копировать весь ключ и потом удалять старый.
Изображение

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

Сообщение GSerg » 25.09.2004 (Сб) 14:50

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

GM
programador
programador
 
Сообщения: 1427
Зарегистрирован: 24.06.2003 (Вт) 15:56
Откуда: 194.67.52.100

Сообщение GM » 26.09.2004 (Вс) 22:50

Ну блин,а я то думал будет просто какая нибудь АPI или еще что-нибудь. Хорошо что мой ключ не содержит подветок, просто удалю ключ и создам заново.
الفيجوال بيسك الرابح

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 27.09.2004 (Пн) 11:45

В реестре есть не только разделы и ключи, у каждого реестра есть дополнительные атрибуты (ACL и служебная инфа). Ее тоже пересоздавать? Верится с трудом.
Кроме того, regedit переименовывает очень быстро, даже ветки с большим числом вложений. Если бы эта ветка пересоздавалась, были бы заметны тормоза.
Lasciate ogni speranza, voi ch'entrate.

SHURUP
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 440
Зарегистрирован: 15.09.2004 (Ср) 14:24
Откуда: Ирпень, Украина

Сообщение SHURUP » 27.09.2004 (Пн) 12:49

alibek, я с помощью Registry Monitor проверял! Именно так и делается! см. мой пост выше. А вот насчет скорости тут действительно парадокс.
Нам чужого не надо, но своё мы возьмем, чьё бы оно ни было...

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

Сообщение tyomitch » 27.09.2004 (Пн) 22:30

alibek писал(а):В реестре есть не только разделы и ключи, у каждого реестра есть дополнительные атрибуты (ACL и служебная инфа). Ее тоже пересоздавать? Верится с трудом.
Кроме того, regedit переименовывает очень быстро, даже ветки с большим числом вложений. Если бы эта ветка пересоздавалась, были бы заметны тормоза.

1. Именно так и делается в примере, на который я далл ссылку.
2. В том, что RegEdit подлый, признался сам Рэймонд Чен - неужели этого мало?
Ещё раз отсылаю в сторону http://bbs.vbstreets.ru/viewtopic.php?p=61184#61184
Изображение


Вернуться в Visual Basic 1–6

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

Сейчас этот форум просматривают: С.Т., Google-бот, SemrushBot, Yandex-бот и гости: 3

    TopList