Как удалить ключ в реестре? Ничего не работает!

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
|kerish|
Постоялец
Постоялец
 
Сообщения: 831
Зарегистрирован: 22.10.2004 (Пт) 0:31

Как удалить ключ в реестре? Ничего не работает!

Сообщение |kerish| » 24.05.2005 (Вт) 10:56

Как удалить ключ в реестре? Ничего не работает!
Перепробовал всё, что можно!
API функция RegDeleteKey не удаляет ничего.
Пути верные.
Может нужно ещё, что-то?

codemaster
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 604
Зарегистрирован: 13.02.2004 (Пт) 13:35

Re: Как удалить ключ в реестре? Ничего не работает!

Сообщение codemaster » 24.05.2005 (Вт) 10:59

|kerish| писал(а):Может нужно ещё, что-то?


В W2K XP Как миниум права на удаление
//<-
Mit freundlichen Grüßen
//->

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 24.05.2005 (Вт) 12:03

Что-то мне подсказывает, что тебе вместо RegDeleteKey() больше подойдет вот это.

|kerish|
Постоялец
Постоялец
 
Сообщения: 831
Зарегистрирован: 22.10.2004 (Пт) 0:31

Сообщение |kerish| » 24.05.2005 (Вт) 23:06

Может я чего-то не понял как использовать shlwapi.dll?
Она не подрубается к проекту :(

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

Сообщение tyomitch » 24.05.2005 (Вт) 23:58

Её функции нужно декларить так же, как обычные API.
Изображение

|kerish|
Постоялец
Постоялец
 
Сообщения: 831
Зарегистрирован: 22.10.2004 (Пт) 0:31

Сообщение |kerish| » 25.05.2005 (Ср) 0:09

Я понял.
А неужели нельзя обойтись обычными функциями, чтобы удалить ключ?

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

Сообщение tyomitch » 25.05.2005 (Ср) 0:58

"обычными" - это какими? DeleteSetting? Можно, но только из своей ветки.
Изображение

|kerish|
Постоялец
Постоялец
 
Сообщения: 831
Зарегистрирован: 22.10.2004 (Пт) 0:31

Сообщение |kerish| » 25.05.2005 (Ср) 1:05

tyomitch,Ennor У меня ничего не вышло даже с функцией SHDeleteKey.
Помогите удалить ключ!
Это очень важно!
Попробуйте у себя...может я не то, что-то делаю...

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

Сообщение tyomitch » 25.05.2005 (Ср) 2:06

Ну что я могу сказать... Когда я ключи удалял, у меня они удалялись без проблем :-)
Может, баги где-то в другом месте? Права точно есть?
Изображение

|kerish|
Постоялец
Постоялец
 
Сообщения: 831
Зарегистрирован: 22.10.2004 (Пт) 0:31

Сообщение |kerish| » 25.05.2005 (Ср) 2:26

Права администратора.
Делаю вот-так.
Код: Выделить всё
Public Declare Function SHDeleteKey Lib "shlwapi.dll" Alias "SHDeleteKeyA" (ByVal HKEY As Long, pszSubKey As String) As Long

Public Const HKEY_LOCAL_MACHINE = &H80000002

Public Function KeyDelete(KeyName As String)
SHDeleteKey(HKEY_LOCAL_MACHINE, KeyName)
End Function


Когда вызываю SHDeleteKey возвращает 2-йку, т.е. код ошибки.

|kerish|
Постоялец
Постоялец
 
Сообщения: 831
Зарегистрирован: 22.10.2004 (Пт) 0:31

Сообщение |kerish| » 25.05.2005 (Ср) 2:30

Адрес ключа верный 100%

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

Сообщение tyomitch » 25.05.2005 (Ср) 2:52

|kerish| писал(а):Права администратора.

Это ещё не значит, что их достаточно ;-)
Проверь, regedit-ом можешь этот ключ удалить?

Хотя... ERROR_FILE_NOT_FOUND - значит, дело не в правах :-(
Ну не бывает так, что 100%, а оно не находит. Может, русские буквы вместо латинских вкрались?
Изображение

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

Сообщение GSerg » 25.05.2005 (Ср) 11:23

Тёмыч, ну ты-то, ты-то :)

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

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

Сообщение tyomitch » 25.05.2005 (Ср) 13:55

Посыпаю голову... Плохо думается в шестом часу утра :-(
Изображение

|kerish|
Постоялец
Постоялец
 
Сообщения: 831
Зарегистрирован: 22.10.2004 (Пт) 0:31

Сообщение |kerish| » 26.05.2005 (Чт) 14:58

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

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

Сообщение GSerg » 26.05.2005 (Чт) 16:16

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


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

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

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

    TopList