Забанен
Статус: Не в сети Регистрация: 27.08.2004 Откуда: BY, Pltsk-Minsk
Hi! C Visual Basic`ом 6.0 я знаком не так давно, поэтому появилось пару вопосов:
1) Возможно ли изменять параметры реестра из VB, т.е. нажал кнопку -> параметр изменился .
2) Как научить программу, например, определять владельца компьютера или какое оборудование у него установлено.
Забанен
Статус: Не в сети Регистрация: 27.08.2004 Откуда: BY, Pltsk-Minsk
При использовании функции LONG вылетает ошибка "Ошибка компелляции. Ожидается номер строки или метка или оператор или конец оператора".
Вот код:
LONG RegCloseKey( _
HKEY hKey _
);
И еще вопрос, вместо hKey просто записывать путь в реестре?
_________________ Подставлю ладони - их болью своей наполни,
Наполни печалью, страхом гулкой темноты...
Забанен
Статус: Не в сети Регистрация: 27.08.2004 Откуда: BY, Pltsk-Minsk
Avaddon
Цитата:
Работа с реестром - транзакционна.
Спасибо. Теперь всё стало понятно .
Наверное, я тебя уже утомил, но всё таки задам последний (надеюсь) вопрос:
Вот я пишу:
Longint RegOpenKey(HKEY_USERS, LPCTSTR lpSubKey, PHKEY phkResult);
HKEY_USERS - нужно указывать полный путь к ключу, так?
LPCTSTR lpSubKey - здесь указывается сам ключ?
PHKEY phkResult - ?
_________________ Подставлю ладони - их болью своей наполни,
Наполни печалью, страхом гулкой темноты...
Member
Статус: Не в сети Регистрация: 15.04.2004 Откуда: Москва
Так. Ты в Барсике, поэтому используй утилиту WinAPI-что-то там (не помню). Она тебе сгенерит прототип функции типа
Function RegOpenKey(Key as Longint, subKey as String, out phkResult as Longint ) as Longint exterlnal 'user32.dll' (не помню я как это точно будет, 100 лет барсик не гонял).
Вызываешь ее так
Dim key as Longint
If RegOpenKey(HKEY_LOCAL_MACHINE, "\Software\ZZ",key) = 0 Then
' Твой код тут
RegCloseKey(key);
Else
MsgBox "Ходи лесом, реестр запилили!"
End if
Member
Статус: Не в сети Регистрация: 15.04.2004 Откуда: Москва
ANTIHacker А утилита называется APILoad.exe Входит в состав MSVC.
Вот тебе экспорт всех Reg функций:
Код:
Public Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Public Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, phkResult As Long) As Long
Public Declare Function RegQueryInfoKey Lib "advapi32.dll" Alias "RegQueryInfoKeyA" (ByVal hKey As Long, ByVal lpClass As String, lpcbClass As Long, ByVal lpReserved As Long, lpcSubKeys As Long, lpcbMaxSubKeyLen As Long, lpcbMaxClassLen As Long, lpcValues As Long, lpcbMaxValueNameLen As Long, lpcbMaxValueLen As Long, lpcbSecurityDescriptor As Long, lpftLastWriteTime As FILETIME) As Long
Public Declare Function RegQueryValue Lib "advapi32.dll" Alias "RegQueryValueA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal lpValue As String, lpcbValue As Long) As Long
Public Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As Long ' Note that if you declare the lpData parameter as String, you must pass it By Value.
Public Declare Function RegReplaceKey Lib "advapi32.dll" Alias "RegReplaceKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal lpNewFile As String, ByVal lpOldFile As String) As Long
Public Declare Function RegRestoreKey Lib "advapi32.dll" Alias "RegRestoreKeyA" (ByVal hKey As Long, ByVal lpFile As String, ByVal dwFlags As Long) As Long
Public Declare Function RegSaveKey Lib "advapi32.dll" Alias "RegSaveKeyA" (ByVal hKey As Long, ByVal lpFile As String, lpSecurityAttributes As SECURITY_ATTRIBUTES) As Long
Public Declare Function RegSetKeySecurity Lib "advapi32.dll" Alias "RegSetKeySecurity" (ByVal hKey As Long, ByVal SecurityInformation As Long, pSecurityDescriptor As SECURITY_DESCRIPTOR) As Long
Public Declare Function RegSetValue Lib "advapi32.dll" Alias "RegSetValueA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal dwType As Long, ByVal lpData As String, ByVal cbData As Long) As Long
Public 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 ' Note that if you declare the lpData parameter as String, you must pass it By Value.
Public Declare Function RegUnLoadKey Lib "advapi32.dll" Alias "RegUnLoadKeyA" (ByVal hKey As Long, ByVal lpSubKey As String) As Long
Забанен
Статус: Не в сети Регистрация: 27.08.2004 Откуда: BY, Pltsk-Minsk
Avaddon Вот полный код:
Private Sub Form_Load()
Public Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Dim key As Longint
If RegOpenKey(HKEY_LOCAL_MACHINE, "\Software\ZZ", key) = 0 Then
' Твой код тут '
RegCloseKey(key);
Else
MsgBox "Ходи лесом, реестр запилили!"
End If
End Sub
Но опять же вылетает ошибка: Public Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long Только комментарии огут появляться осле Конец процедуры, Конец функции, Конец сво-ва.
_________________ Подставлю ладони - их болью своей наполни,
Наполни печалью, страхом гулкой темноты...
Забанен
Статус: Не в сети Регистрация: 27.08.2004 Откуда: BY, Pltsk-Minsk
Avaddon Стоп-стоп-стоп. Я окончательно запутался.
Я ввожу Public Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long вне тела Form Load и выскакивает
Цитата:
Константы, ..., массивы, определенные пользователем типы не допускаются в качестве общих элементов модулей объектов
. Ввожу в теле Form Load - Только комментарии огут появляться осле Конец процедуры, Конец функции, Конец сво-ва
_________________ Подставлю ладони - их болью своей наполни,
Наполни печалью, страхом гулкой темноты...
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения