Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: RegCreateKey Добавлено: 04.02.05 18:44  

Автор вопроса:  Виталик
Создаю ключ используя api, но в вин2к он не создается! Как мне быть? Код:
модуля:
Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias _
    "RegSetValueExA" (ByVal HKEY As Long, ByVal lpValueName As _
    String, ByVal Reserved As Long, ByVal dwType As Long, lpData _
    As Any, ByVal cbData As Long) As Long
Private Declare Function RegCreateKeyEx Lib "advapi32.dll" Alias _
    "RegCreateKeyExA" (ByVal HKEY As Long, ByVal lpSubKey As String, _
    ByVal Reserved As Long, ByVal lpClass As String, ByVal dwOptions _
    As Long, ByVal samDesired As Long, lpSecurityAttributes As _
    Long, phkResult As Long, lpdwDisposition As Long) _
    As Long
Private Const REG_SZ = 1 ' Unicode null terminated string
Private Const ERROR_SUCCESS = 0
Public Const HKEY_CLASSES_ROOT = &H80000000
Public Const HKEY_CURRENT_USER = &H80000001
Public Const HKEY_LOCAL_MACHINE = &H80000002
Public Const HKEY_USERS = &H80000003
Public Const HKEY_PERFORMANCE_DATA = &H80000004
Public Sub SetRegString(HKEY As Long, strSubKey As String, _
                                strValueName As String, strSetting _
                                As String)
On Error Resume Next
    Dim hNewHandle As Long
    Dim lpdwDisposition As Long
    '*****************************************************************
    ' Create & open the key. If success, then get then write the data
    ' to the key.
    '*****************************************************************
    If RegCreateKeyEx(HKEY, strSubKey, 0, strValueName, 0, _
        KEY_ALL_ACCESS, 0&, hNewHandle, lpdwDisposition) = _
        ERROR_SUCCESS Then
        If RegSetValueEx(hNewHandle, strValueName, 0, REG_SZ, _
            ByVal strSetting, Len(strSetting)) <> ERROR_SUCCESS Then

        End If
    Else
    End If
    '*****************************************************************
    ' ALWAYS close any keys that you open.
    '*****************************************************************
    RegCloseKey hNewHandle
End Sub

Формы:
Private Sub Command1_Click()
    SetRegString HKEY_LOCAL_MACHINE, Text1, Text3, Text4
End Sub

Ответить

  Ответы Всего ответов: 9  

Номер ответа: 1
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #1
Добавлено: 04.02.05 20:18
Возможно, не хватает прав, посмотри, что возвращает RegCreateKeyEx

Ответить

Номер ответа: 2
Автор ответа:
 cresta



Вопросов: 117
Ответов: 1538
 Профиль | | #2 Добавлено: 04.02.05 20:50
А что у тебя в Text1 содержится? Надо ведь полностью показать код, чтобы можно было ответить на вопрос.

Ответить

Номер ответа: 3
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #3
Добавлено: 04.02.05 23:39
Не используй KEY_ALL_ACCESS, используй что-то вроде: KEY_SET_VALUE or KEY_CREATE_SUB_KEY...

ALL_ACCESS - есть плохо...

Ответить

Номер ответа: 4
Автор ответа:
 Виталик



Вопросов: 4
Ответов: 4
 Профиль | | #4 Добавлено: 06.02.05 18:10
в text1 - имя раздела в text3 - имя ключа в text4 - имя параметра. Режим - Администратор. По-моему ч-з msgbox - 84 (возвращает)
KEY_SET_VALUE or KEY_CREATE_SUB_KEY...

Это как? Писать вместо key_all_access их? А значение констант нужно задавать?

Ответить

Номер ответа: 5
Автор ответа:
 cresta



Вопросов: 117
Ответов: 1538
 Профиль | | #5 Добавлено: 06.02.05 18:30
в text1 - имя раздела


ЧТО В TEXT1 ????

Как называется имя? Есть его символьное представление? В каком разделе ты пытаешься создать ключ?

Ответить

Номер ответа: 6
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #6
Добавлено: 06.02.05 20:13
и как же не задавать значений констант!? разумеется нужно, или ты и KEY_ALL_ACCESS не задавал ???

Ответить

Номер ответа: 7
Автор ответа:
 cresta



Вопросов: 117
Ответов: 1538
 Профиль | | #7 Добавлено: 06.02.05 20:23
И зачем в RegCreateKeyEx четвертым параметром передаешь strValueName? Там должен быть lpClass.

И константы если не указаны, вместо них будут передаваться нули, как пустая переменная типа вариант.

Ответить

Номер ответа: 8
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #8 Добавлено: 07.02.05 09:56
Чет-то мне кажется ты с параметрами напутал. KEY_ALL_ACCESS у тебя стоит в качестве samDesired, а LPSECURITY_ATTRIBUTES - &0. Результат очевиден.

Ответить

Номер ответа: 9
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #9 Добавлено: 07.02.05 09:58
Хотя нет, так оно и надо. Странно. Код ошибки какой даёт?

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам