Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.09.2011, 11:11   #1
Mr_ViK
Форумчанин
 
Регистрация: 12.08.2011
Сообщений: 124
Восклицание Как считывать реестр на VB или команды regedit

Привет.
Мне нужно как-то считать определенный каталог реестра на VB, причем считывать только те подкаталоги, в которых есть определенное значение
Лазил в инете, там говорят что проги на VB могут изменять только 1 каталог реестра (че-то там с самим VB связано), тогда может у regedit есть комманда экспорта, есди да то как это использовать, знаю что такую операцию можно провернуть коммандой shell

Всем спасибо заранее!
Mr_ViK вне форума Ответить с цитированием
Старый 01.09.2011, 16:17   #2
Mr_ViK
Форумчанин
 
Регистрация: 12.08.2011
Сообщений: 124
Злость

Код:
Option Explicit
Dim y As Variant
Private Declare Function RegQueryValueExS Lib "advapi32.dll" _
 Alias "RegQueryValueExA" ( _
 ByVal hkey As Long, _
 ByVal lpValueName As String, _
 ByVal lpReserved As Long, _
 lpType As Long, _
 ByVal lpData As String, _
 lpcbData As Long) As Long

Private Declare Function RegSetValueExS Lib "advapi32.dll" _
 Alias "RegSetValueExA" ( _
 ByVal hkey As Long, _
 ByVal lpValueName As String, _
 ByVal Reserved As Long, _
 ByVal dwType As Long, _
 ByVal lpData As String, _
 ByVal cbData As Long) As Long
 
Public Enum HKEY_CONSTANTS
 HKEY_CLASSES_ROOT = &H80000000
 HKEY_CURRENT_CONFIG = &H80000005
 HKEY_CURRENT_USER = &H80000001
 HKEY_DYN_DATA = &H80000006
 HKEY_LOCAL_MACHINE = &H80000002
 HKEY_PERFORMANCE_DATA = &H80000004
 HKEY_USERS = &H80000003
End Enum

Private Const REG_SZ = 1

Public Function GetString( _
   ByVal HomeKey As HKEY_CONSTANTS, _
   ByVal KeyName As String, _
   ByVal ValueName As String) As String

Dim hkey As Long
Dim sData As String
Dim lres As Long
Dim lDataType As Long
Dim lDlen As Long
lres = RegOpenKey(HomeKey, KeyName, hkey)
If lres <> 0 Then GetRegString = vbNullString: Exit Function
sData = String$(64, 32) & Chr$(0)
lDlen = Len(sData)
lres = RegQueryValueExS(hkey, ValueName, 0, lDataType, sData, lDlen)
If lres <> 0 Then GetRegString = vbNullString: Exit Function
If lDataType = REG_SZ Then
GetString = Left$(sData, lDlen - 1)
Else
GetString = vbNullString
End If
lres = RegCloseKey(hkey)
End Function

Public Sub SaveString( _
    ByVal HomeKey As HKEY_CONSTANTS, _
    ByVal KeyName As String, _
    ByVal ValueName As String, _
    ByVal Data As String)

Dim hkey As Long
Dim hSubKey  As Long
Dim lres As Long
lres = RegOpenKey(HomeKey, vbNullString, hkey)
lres = RegCreateKey(HomeKey, KeyName, hSubKey)
lres = RegSetValueExS(hSubKey, ValueName, 0, _
   REG_SZ, Data + Chr$(0), Len(Data) + 1)

lres = RegCloseKey(hSubKey)
lres = RegCloseKey(hkey)
End Sub

Public Sub DeleteValue( _
    ByVal HomeKey As HKEY_CONSTANTS, _
    ByVal KeyName As String, _
    ByVal ValueName As String)
Dim hkey As Long
Dim lres As Long
lres = RegOpenKey(HomeKey, KeyName, hkey)
If lres <> 0 Then Exit Sub
lres = RegDeleteValue(hkey, ValueName)
lres = RegCloseKey(hkey)
End Sub

Public Sub DeleteKey( _
   ByVal HomeKey As HKEY_CONSTANTS, _
   ByVal KeyName As String)
Dim lres As Long
lres = RegDeleteKey(HomeKey, KeyName)
End Sub

Private Sub Command1_Click()
y = DeleteKey(HKEY_LOCAL_MACHINE, 123)
End Sub
Народ, выдает ошибку при выполнении, обьясните как правитьно команду написать плииииз
Вот скрин ошибки:
Изображения
Тип файла: bmp ошибка.bmp (121.4 Кб, 157 просмотров)
Mr_ViK вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Сохранение параметров в реестр] Как сохранить параметры цвета в реестр. ZARO Общие вопросы Delphi 3 12.03.2010 21:24
Обновить тему... ...или реестр :confused: dplz Общие вопросы Delphi 2 18.12.2009 15:20
Как считывать из файла построково? Dimedrolum Общие вопросы C/C++ 3 02.10.2009 21:13
Как программно назначить привилегию или писать в реестр через WinApi ? UnD)eaD)Snake Win Api 16 27.09.2007 20:20
как считывать информацию с doc файла ar4i Общие вопросы Delphi 2 11.12.2006 12:52