Проблема при работе с реестром

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

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

Gfif21
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 71
Зарегистрирован: 31.05.2004 (Пн) 7:23

Проблема при работе с реестром

Сообщение Gfif21 » 17.12.2009 (Чт) 12:22

Пишу очередной проект. Нужно, чтобы программа хранила свои настройки в реестре. При загрузке программа должна проверять, существует ли в реестре соответствующая запись. Создал запись в реестре самостоятельно. Функция RegOpenKeyEx дает ненулевой результат, то есть ошибку (87). Подумал, может неправильно добавил запись. Исправил для просмотра другой программы (первой попалась 7-Zip). То же самое. Запись в реестре есть. Но при открытии выдает ошибку. В чем может быть косяк?

Код:
Код: Выделить всё
Module RegistryData
    Private Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" (ByVal hKey As Integer, ByVal lpSubKey As String, ByVal ulOptions As Integer, ByVal samDesired As Integer, ByVal phkResult As Integer) As Integer
    Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Integer) As Integer
    Private Const HKEY_LOCAL_MACHINE = &H80000002
    Private Const KEY_READ = &H20019



    Public Function isRegistryDataExists() As Boolean
        Dim iResult As Integer
        Dim RetVal As Integer

        RetVal = RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\\7-Zip", 0, KEY_READ, iResult)
        If RetVal = 0 Then
            isRegistryDataExists = True
            RegCloseKey(iResult)
        Else
            isRegistryDataExists = False
        End If
    End Function
End Module

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: Проблема при работе с реестром

Сообщение Денис » 17.12.2009 (Чт) 14:14

Виста? Семерка? Запрет на чтение из этого куста реестра?
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

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

Re: Проблема при работе с реестром

Сообщение Nord777 » 17.12.2009 (Чт) 14:24

Зачем API ?

Object Browser писал(а):Public NotInheritable Class Registry
Член Microsoft.Win32

Сводка:
Обеспечивает объекты Microsoft.Win32.RegistryKey, предоставляющие корневые разделы в реестре Windows, и методы static для доступа к парам "раздел-значение".


Object Browser писал(а):Public NotInheritable Class RegistryKey
Inherits System.MarshalByRefObject
Член Microsoft.Win32

Сводка:
Представляет узел уровня раздела в реестре Windows. Этот класс является инкапсуляцией реестра.
Microsoft Visual Studio 2008
Microsoft .NET Framework 3.5

Gfif21
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 71
Зарегистрирован: 31.05.2004 (Пн) 7:23

Re: Проблема при работе с реестром

Сообщение Gfif21 » 17.12.2009 (Чт) 16:42

Короче вопрос снимается, после перезагрузки ноута все заработало. Странно :roll:

Nord777 писал(а):Зачем API ?

Object Browser писал(а):Public NotInheritable Class Registry
Член Microsoft.Win32

Сводка:
Обеспечивает объекты Microsoft.Win32.RegistryKey, предоставляющие корневые разделы в реестре Windows, и методы static для доступа к парам "раздел-значение".


Object Browser писал(а):Public NotInheritable Class RegistryKey
Inherits System.MarshalByRefObject
Член Microsoft.Win32

Сводка:
Представляет узел уровня раздела в реестре Windows. Этот класс является инкапсуляцией реестра.


API по привычке. Спасибо за подсказку. Попробую. :wink:


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

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

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

    TopList