Удаление параметра в ресстре.

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

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

NIC
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 175
Зарегистрирован: 26.04.2005 (Вт) 4:50

Удаление параметра в ресстре.

Сообщение NIC » 11.02.2008 (Пн) 11:22

Подскажите,как удалить себя из автозагрузки правильно.

Прописываюсь:
Код: Выделить всё
My.Computer.Registry.CurrentUser.CreateSubKey("Software\Microsoft\Windows\CurrentVersion\Run\MyApp")
        My.Computer.Registry.SetValue _
        ("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run", "MyApp", Application.ExecutablePath)


А удалять сам ключ MyApp не хочет.
Удаляет либо ветку MyApp -(если DeleteSubKey и ветка присутствует)
,а если использовать DeleteValue то пишет,что значения для этого имени не существует.Хотя RegEdit показывает сам ключ и его значение. :roll:
Код: Выделить всё
My.Computer.Registry.CurrentUser.DeleteValue _
        ("Software\Microsoft\Windows\CurrentVersion\Run\MyApp")


С Ув.Nic.

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

Re: Удаление параметра в ресстре.

Сообщение Viper » 11.02.2008 (Пн) 14:24

NIC писал(а):
Код: Выделить всё
My.Computer.Registry.CurrentUser.DeleteValue _
        ("Software\Microsoft\Windows\CurrentVersion\Run\MyApp")



Ты здесь пытаешься удалить значение с именем "Software\Microsoft\Windows\CurrentVersion\Run\MyApp" из ключа
My.Computer.Registry.CurrentUser
а не значение MyApp ключа
\Software\Microsoft\Windows\CurrentVersion\Run"
Весь мир матрица, а мы в нем потоки байтов!

NIC
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 175
Зарегистрирован: 26.04.2005 (Вт) 4:50

Сообщение NIC » 11.02.2008 (Пн) 21:13

Viper я понял.
Это не ветка реестра,а имя параметра получаеться.
Но,всё же, как тогда добраться до нужного ключа?

С помощью
Код: Выделить всё
My.Computer.Registry.CurrentUser.CreateSubKey("Software\Microsoft\Windows\CurrentVersion\Run\MyApp")
        My.Computer.Registry.SetValue _
        "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run", "MyApp",Nothing

я могу записать в него значение Nothing. А удалить его совсем не получиться? :roll:
Понятно,что программа не будет стартовать при запуске,но ведь "битый параметр"-это лишний мусор в реестре!?

Nord777
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1144
Зарегистрирован: 22.02.2004 (Вс) 13:15
Откуда: Подольск

Сообщение Nord777 » 12.02.2008 (Вт) 7:05

Код: Выделить всё
    Dim RK As Microsoft.Win32.RegistryKey

    RK = My.Computer.Registry.CurrentUser.OpenSubKey( _
    "Software\Microsoft\Windows\CurrentVersion\Run\", True)

    RK.DeleteValue("MyApp")
Microsoft Visual Studio 2008
Microsoft .NET Framework 3.5

NIC
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 175
Зарегистрирован: 26.04.2005 (Вт) 4:50

Сообщение NIC » 12.02.2008 (Вт) 9:16

Viper,Nord777-спасибо.
Этот подход действительно удобнее.


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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

    TopList