Работа с реестром в VB6 (28.07.2012). Печать
2012 - Июль
28.07.2012 14:57
Save & Share

Иногда склероз играет злую шутку. Нужно было считать значение ключа реестра Windows; но я не мог вспомнить ни метода, ни программы, в которой я этот метод применял около года назад.

Начал писать собственный модуль с функциями по работе с реестром, используя API. Почти дописал: выключили свет - и мой модуль пропал, т.к. в VB6 нет функции автосохранения. Писать заново не стал; нашел в интернете готовый модуль, изучил его, переписал и уже готов был применить его по назначению.

Вдруг ко мне вернулась память. И я вспомнил, где я ранее работал с реестром; и нашел там мне необходимый код. Мой переработанный модуль стал мне не нужен. Но это не значит, что он не нужен вам.

Поясню. Пусть есть задача. Считать значение ключа реестра Windows: значение - "ffffff4c", тип - "REG_DWORD", ключ - "ActiveTimeBias", путь - "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation". Модуль, который я вложил в полезные исходники для программистов, считает данное значение в текстовую переменную, и будет выглядеть следующим образом: "ffffff4c (-180)".

Ежели я применю свои прошлые наработки, то получу результат "-180". Это обусловлено использованием технологии Windows Scripting Host, зарожденной не позднее 2001 года. Меня это устроило по 2 причинам: и значение необходимое, и кода пишется намного меньше. Для сравнения с модулем размером 8,5 KB решение Windows Scripting Host будет выглядеть так:

Dim Reg As Variant
Dim timezone_system as String
Set Reg = CreateObject("WScript.Shell")
timezone_system =
Reg.RegRead("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation\ActiveTimeBias")

Всё.

Описание технологии Windows Scripting Host. В Windows Scripting Host входят 4 объекта: Wscript, WshShell, WshNetwork, FileSystemObject, RegExp, Shell, Dictionary, WshNetwork, WebBrowser. В списках указаны не все свойства этих объектов, подробно здесь.

Wscript. Объект WScript можно использовать в сценарии WSH сразу, без какого-либо предварительного описания или создания, т.к. его экземпляр создаётся сервером сценариев (CScript.exe или WScript.exe) автоматически.
Свойства:
Arguments - возвращает указатель на список аргументов командной строки;
FullName - возвращает имя исполняемого файла хоста и полный путь к нему;
Name - выводит замечательную надпись Windows Scripting Host;
Path - определяет каталог и путь, содержащие wscript.exe или cscript.exe;
ScriptFullName - возвращает полный путь и имя исполняемого в данный момент скрипта;
ScriptName - то же, что и ScriptFullName, но без пути;
Version - возвращает версию установленного WSH.

Методы.
CreateObject - создает объект по его ProgID;
ConnectObject - позволяет подключиться к событиям объекта;
DisconnectObject - отключает от объекта, подключенного предыдущим методом;
Echo - выводит текстовую строку (в cscript - в StdOut, в Wscript - в виде диалогового окна);
GetObject - позволяет получить указатель на объект из файла или объекта, указанного в параметре strProgID;
Quit - завершает скрипт;
Sleep - переводит скрипт в неактивное состояние на время, указанное в миллисекундах.

WshShell. Объект WshShell позволяет скриптам устанавливать и конфигурировать другие приложения, общаться с пользователем, изменять реестр и находить папки.
Свойства:
Environment - возвращает объект, который позволяет получить значения переменных среды;
SpecialFolders - возвращает полный путь к специальным папкам типа меню Пуск.

Методы:
Run - запускает приложение. strCommand - исполняемая команда, параметр intWindowStyle позволяет управлять положением и поведением окон, а bWaitOnReturn позволяет указать объекту WshShell, надо ли ожидать окончания выполнения запущенного приложения;
Popup - ещё один способ вывести текст в окне;
CreateShortcut - создает ярлыки файлов или URL;
RegRead - возвращает значение ключа или записи реестра по его имени;
RegWrite - создает новые ключ или запись реестра или записывает новое значение существующих;
RegDelete - удаляет ключ или запись реестра;
LogEvent - позволяет записать сообщение в event log Windows NT или W2K или файл WSH.log в случае Windows 9х;
ExpandEnvironmentStrings - позволяет раскрыть строку, содержащую переменные среды;
SendKeys - позволяет эмулировать клавиатурный ввод.

Обновлено ( 08.08.2020 16:31 )