Базы данныхИнтернетКомпьютерыОперационные системыПрограммированиеСетиСвязьРазное
Поиск по сайту:
Подпишись на рассылку:

Назад в раздел

Как в Visual Basic 6.0 работать с реестром на удалённом компьютере

div.main {margin-left: 20pt; margin-right: 20pt}

Как в Visual Basic 6.0 работать с реестром на удалённом компьютере

http://www.sources.ru/


В этой статье объясняется, как в приложении Visual Basic получить доступ к реестру на удалённой машине с использованием API функций. Данная технология работает в операционных системах Windows XP, Windows 2000, или Windows NT 4.0.

Замечание: Для того, чтобы получить доступ к реестру в этих ОС, необходимо запустить приложение с правами на чтение реестра.

Создание демонстрационного приложения

Запустите Visual Basic 6.0, и создайте стандартный проект EXE.

Кликните правой кнопкой мыши по форме, а затем по View Code в меню Shortcut. Добавьте следующее выражение в начало кода:

Option Explicit Объявите константы, чтобы использовать их для доступа к реестру:

Private Const HKEY_CLASSES_ROOT = &H80000000 Private Const HKEY_CURRENT_USER = &H80000001 Private Const HKEY_LOCAL_MACHINE = &H80000002 Private Const HKEY_USERS = &H80000003 Private Const KEY_QUERY_VALUE = &H1 Private Const KEY_SET_VALUE = &H2 Private Const KEY_ALL_ACCESS = &H3F Private Const REG_SZ As Long = 1 Private Const ERROR_SUCCESS = 0& Так же нам потребуется объявить следующие функции работы с реестром:

Private Declare Function RegConnectRegistry Lib "advapi32.dll" _ Alias "RegConnectRegistryA" _ (ByVal lpMachineName As String, _ ByVal hKey As Long, _ phkResult As Long) As Long Private Declare Function RegCloseKey Lib "advapi32.dll" _ (ByVal hKey As Long) As Long Private 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 Private Declare Function RegQueryValueExString 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 hRemoteReg As Long Добавьте следующий код в обработчик события Form_Load. Этот код вызывает функцию RegConnectRegistry для присоединения к удалённому реестру. Замените параметр \RemoteMachineName на имя компьютера, к реестру которого хотите получить доступ:

Private Sub Form_Load() Dim lRet As Long 'Connect to the remote registry lRet = RegConnectRegistry("\RemoteMachineName", _ HKEY_LOCAL_MACHINE, _ hRemoteReg) If (lRet = ERROR_SUCCESS) Then MsgBox "Successfully connected to remote registry" Else MsgBox "Error:" & Err.LastDllError Unload Me Exit Sub End If End Sub Следующий код нужно добавить в обработчик события Form_Unload:

Private Sub Form_Unload(Cancel As Integer) Dim lRet As Long If hRemoteReg <> 0 Then lRet = RegCloseKey(hRemoteReg) End If End Sub В дизайнере формы (Form Designer) добавьте на форму элемент управления Command. Поумолчанию ему будет присвоено имя Command1.

Чтобы создать обработчик события для кнопки сделайте двойной клик по Command1. И добавьте следующий код в функцию обработчика:

Private Sub Command1_Click() Dim lRetVal As Long Dim hKey As Long Dim sValue As String lRetVal = RegOpenKeyEx(hRemoteReg, _ "HARDWAREDESCRIPTIONSystem", 0, KEY_QUERY_VALUE, hKey) If lRetVal <> ERROR_SUCCESS Then MsgBox "Cannot open key" Else sValue = String(255, " ") lRetVal = RegQueryValueExString(hKey, _ "SystemBIOSVersion", 0&, REG_SZ, sValue, 255) If lRetVal <> ERROR_SUCCESS Then MsgBox "Cannot query value" Else MsgBox sValue End If lRetVal = RegCloseKey(hKey) If lRetVal <> ERROR_SUCCESS Then MsgBox "Cannot close key" End If End If End Sub

Проверка

Для компиляции и запуска проекта нажмите F5.

Появившееся диалоговое окошечко свидетельствует о том, что подключение к удалённому реестру прошло успешно. Нажмите OK.

Появится главная форма приложения.

Кликните по Command1. Будет показано значение, которое хранится в удалённом реестре по следующему адресу:

HKEY_LOCAL_MACHINEHARDWAREDESCRIPTIONSystemSystemBIOSVersion Для проверки правильности этого значения, запустите на удалённой машине regedit.exe. В редакторе реестра (Registry Editor), кликните Find в меню Edit. Наберите SystemBIOSVersion , а затем кликните Find Next. После короткой паузы редактор реестра покажет значение в этом ключе; сравните это значение с тем, которое появилось в Вашем приложении.

  • Главная
  • Новости
  • Новинки
  • Скрипты
  • Форум
  • Ссылки
  • О сайте




  • Emanual.ru – это сайт, посвящённый всем значимым событиям в IT-индустрии: новейшие разработки, уникальные методы и горячие новости! Тонны информации, полезной как для обычных пользователей, так и для самых продвинутых программистов! Интересные обсуждения на актуальные темы и огромная аудитория, которая может быть интересна широкому кругу рекламодателей. У нас вы узнаете всё о компьютерах, базах данных, операционных системах, сетях, инфраструктурах, связях и программированию на популярных языках!
     Copyright © 2001-2024
    Реклама на сайте