Страница: 1 |
Нужно "взять" все ключи определенной ветви реестра, скажем HKLM\Software\Microsoft\Windows\CurrentVersion\Run как сделать ?
Возьми более менее полный файл работы с реестром, там есть уже готовое EnumKeys/EnumKeyValues, а далее используй рекурсию, дабы двигаться в подключи, и смотреть что там... если это надо, конечно же... адрес скажи плиз Применительно к твоему вопросу - вот тебе примерчик. Кинь на форму ListBox и пару кнопочек. 'код формы Option Explicit Private Declare Function RegEnumKey Lib "advapi32.dll" Alias "RegEnumKeyA" (ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpName As String, ByVal cbName As Long) As Long Private Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long Private Declare Function RegEnumValue Lib "advapi32.dll" Alias "RegEnumValueA" (ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpValueName As String, lpcbValueName As Long, ByVal lpReserved As Long, lpType As Long, lpData As Byte, lpcbData As Long) As Long Private Const HKEY_LOCAL_MACHINE = &H80000002 Private Sub Command1_Click() List1.Clear Dim Ret As Long Dim hKey As Long Dim Counter As Long Dim tmpString As String Ret = RegOpenKey(HKEY_LOCAL_MACHINE, "Software\Microsoft\Windows\CurrentVersion\Run", hKey) Do tmpString = String(255, 0) Ret = RegEnumKey(hKey, Counter, tmpString, 255) If Ret <> 0 Then Exit Do Counter = Counter + 1 List1.AddItem tmpString Loop Me.Caption = Ret End Sub Private Sub Command2_Click() List1.Clear Dim Ret As Long Dim hKey As Long Dim Counter As Long Dim tmpString As String Ret = RegOpenKey(HKEY_LOCAL_MACHINE, "SOFTWARE\Microsoft\Windows\CurrentVersion\Run", hKey) Do tmpString = String(255, 0) Ret = RegEnumValue(hKey, Counter, tmpString, 255, 0, ByVal 0&, ByVal 0&, ByVal 0&) If Ret <> 0 Then Exit Do Counter = Counter + 1 List1.AddItem tmpString Loop Me.Caption = Ret End Sub Private Sub Form_Load() Command1.Caption = "Keys" Command2.Caption = "Values" End Sub В подробностях, думаю, разберешься. Хочу лишь отметить декларацию RegEnumValue. Она немного отличается от того, что в ApiViewer в VB, поскольку та некорректна и выдает ошибку 87. Читай MSDN... Страница: 1 |
Вопрос: WSH и реестр
Добавлено: 01.04.04 08:05
Автор вопроса: Шпион | ICQ: 250543104
Ответы
Всего ответов: 4
Номер ответа: 1
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #1
Добавлено: 01.04.04 09:48
Номер ответа: 2
Автор ответа:
Шпион
ICQ: 250543104
Вопросов: 13
Ответов: 118
Профиль | | #2
Добавлено: 01.04.04 17:09
Номер ответа: 3
Автор ответа:
cresta
Вопросов: 117
Ответов: 1538
Профиль | | #3
Добавлено: 01.04.04 19:35
Похоже, тебе нужна VBRegTool6. Где я её скачивал - не помню, может и на этом сайте. Поищи. Это DLL.
Номер ответа: 4
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #4
Добавлено: 02.04.04 11:28