[ главная ]   [ рейтинг статей ]   [ справочник радиолюбителя ]   [ новости мира ИТ ]



Ответов: 0
25-02-12 07:01







   Web - программирование
PHP


ASP






XML



CSS

SSI





   Программирование под ОС











   Web - технологии








   Базы Данных









   Графика






Данные




Программирование под ОС / Basic /

Visual Basic и Системный Реестр Windows

Мнацаканян , Азбука Visual Basic


Системный Реестр (Registry) Windows это база данных для хранения системной и пользовательской информации в Windows. Системный Реестр состоит из двух файлов – SYSTEM.DAT, в нем содержится информация о конкретном компьторе, и USER.DAT, содержащий пользовательские установки и данные.
Для работы с Системным Реестром обычно применяют специальный редактор Системного Реестра – REGEDIT.EXE, или специальные функции Win32 API, или некоторые встроенные функции и операторы Visual Basic.
Остановимся на последнем и рассмотрим работу с данными в Системном Реестре с помощью Visual Basic. Для этого Вам придется сделать следующее:

  • Запустите редактор Системного Реестра, он находится в каталоге Windows – C:WindowsRegedit.exe. При запуске редактора в окне появятся шесть ключей-папок (эти ключи как раз и представляют содержимое файлов SYSTEM.DAT и USER.DAT). Выберите ключ HKEY_CURRENT_USER (этот ключ входит в состав файла USER.DAT) и щелкните на плюсике "+". В раскрывшемся списке выберите подключ - Software – и раскройте его. Найдите во вновь открывшемся списке папку – VB and VBA Program Setting – это и есть раздел Системного Реестра куда с помошью встроенных операторов и функций Visual Basic Вы можете записывать и считывать необходимую Вам информацию.
  • Запустите Visual Basic и откройте новый проект. Поместите на форму четыре командные кнопки и в свойстве Caption" , каждой из них введите соответственно: SaveSetting, GetSetting, GetAllSettings, DeleteSetting. Запомните проект под именем, скажем, MYREG.


А теперь приступим к работе.

Запись значений с помощью оператора SaveSetting


Дважды щелкните на командной кнопке SaveSetting и в раскрывшемся окне введите следующий код:

Private Sub Command1_Click()
SaveSetting App.Title, "PortSettings", "Connect using", "COM1"
End Sub

Запустите программу на выполнение и нажмите на кнопку SaveSetting, потом переключитесь на окно редактора Системного Реестра. Откройте папку VB and VBA Program Setting и там Вы увидите вновь созданную папку MYREG, а в ней подраздел с именем PortSettings. Открыв его, в левом окне редактора, Вы прочтете запись которую только что создали - Connect using   "COM1".

***Если Вы правильно выполнили все что написано, но ничего не увидели, не волнуйтесь. Нажмите клавишу F5 (Refresh) и перед вами появится искомая запись.

Теперь расмотрим по-подробнее, что Вы написали в окне кода. Синтаксис оператора SaveSetting следующий:
SaveSetting VBKeyName, Section, Key, Setting, где:

  • SaveSetting – имя самого оператора;
  • VBKeyName   - строковое значение, которое является именем внутреннего подраздела VB and VBA Program Setting. В нашем случае онo будет носить имя нашей программы – MYREG, т.к. мы использовали свойство объекта App.Title;
  • Section     - строковое значение, которое является именем внутреннего подраздела VBKeyName. В нашем случае оно носит имя PortSettings;
  • Key    - строковое значение, которое представляет имя параметра в созданном подразделе PortSettings.В подразделе может быть много параметров.
  • Setting    - строковое значение, которое Вы хотите присвоить данному параметру. В нашем случае параметру Connect using приваиваем значение COM1;

Чтение значений с помощью функции GetSetting()


***При выполнении нижеследующих действий объявите в разделе Declaration формы переменные CrtMsg As String, MySet As Variant

Чтобы получить значение определенного параметра, нужно использовать функцию GetSetting().Дважды щелкните на командной кнопке GetSetting и в раскрывшемся окне введите следующий код:

Private Sub Command2_Click()
MySet = GetSetting(App.Title, "PortSettings", "Connect using", CrtMsg)
Debug.Print MySet
End Sub

Запустите программу на выполнение и намите на кнопку GetSetting. В окне Immediate Вы увидете введенное ранее (оператором SaveSetting) значение – COM1.
Теперь расмотрим подробнее, что Вы написали в окне кода. Синтаксис оператора GetSetting следующий:
MySet = GetSetting ( VBKeyName, Section, Key [, Default ] )
 

  • MySet   - строка для хранения возвращаемого функцией GetSetting значения;
  • GetSetting – имя самой функции;
  • VBKeyName   - строковое значение, которое является именем внутреннего подраздела VB and VBA Program Setting. Мы используем свойство объекта App.Title, т.к. хотим прочесть информацию из созданного нашей программой раздела ;
  • Section     - строковое значение, которое является именем внутреннего подраздела VBKeyName. В нашем случае он носит имя PortSettings;
  • Key    - строковое значение, которое представляет имя параметра в созданном подразделе PortSettings.В подразделе может быть много параметров и по-этому, мы указываем на желаемое - Connect using;

  • Default     - необязательный аргумент, представляющий строковое значение, которое будет возвращено функцией в случае ошибки (если такого параметра нет). Функция возвращает строковое значение, присвоенное аргументу Default. К примеру CrtMsg = "Такого параметра не существует.".

Чтение значений с помощью функции GetAllSettings()


***Предварительно добавте следующий код к имеющемуся коду командной кнопки
SaveSetting:
SaveSetting App.Title, "PortSettings", "Data bits", "8"
SaveSetting App.Title, "PortSettings", "Parity", "None"
SaveSetting App.Title, "PortSettings", "Stop bits", "1"
SaveSetting App.Title, "PortSettings", "Flow control", "None"
Произведите операцию записи данных в Системный Реестр.

Для получения из реестра массива, содержащего все значения параметров из определенного подраздела (например, PortSettings) применяется функция GetAllSettings(). Для этого дважды щелкните на командной кнопке GetAllSettings и в раскрывшемся окне введите следующий код:

Private Sub Command3_Click()
Dim intSettings As Integer
MySet = GetAllSettings(App.Title, "PortSettings")
   For intSettings = LBound(MySet, 1) To UBound(MySet, 1)
      Debug.Print MySet(intSettings, 0), MySet(intSettings, 1)
   Next intSettings
End Sub

Запустите программу на выполнение и нажмите на кнопку GetAllSettings. В окне Immediate Вы увидете введенные ранее (оператором SaveSetting) значения:

Connect using      COM1
Bits per second    2400
Data bits          8
Parity             None
Stop bits          1
Flow control       None

Теперь расмотрим подробнее, что Вы написали в окне кода. Синтаксис оператора GetAllSetting следующий:

MySet = GetAllSettings ( VBKeyName, Section)

  • MySet   - возвращаемый функцией массив значений, он должен быть типа Variant
  • GetSetting – имя самой функции;
  • VBKeyName   - строковое значение, которое является именем внутреннего подраздела VB and VBA Program Setting. Мы используем свойство объекта App.Title, т.к. хотим прочесть информацию из созданного нашей программой раздела ;
  • Section     - строковое значение, которое является именем внутреннего подраздела VBKeyName. В нашем случае он носит имя PortSettings;
Остальные операторы помогают обработать массив значений и получить информацию в удобном виде.

Удаление раздела параметров с помощью оператора DeleteSetting

Вы уже создали целый массив параметров! А что делать если он больше ненужен? Для удаления параметров применяется оператор DeleteSetting. Дважды щелкните на командной кнопке DeleteSetting и в раскрывшемся окне введите следующий код:

Private Sub Command4_Click()
DeleteSetting App.Title,"PortSettings", "Flow control "
End Sub

Запустите программу на выполнение и намите на кнопку DeleteSetting, потом переключитесь на окно редактора Системного Реестра и Вы увидете, что параметр Flow control отсутствует.

***Если Вы правильно выполнили все что написано, но ничего не увидели, не волнуйтесь. Нажмите на клавишу F5 - Refresh.

Теперь расмотрим подробнее, что Вы написали в окне кода. Синтаксис оператора DeleteSetting следующий:

DeleteSetting VBKeyName, Section, Key , где:

  • DeleteSetting - имя самого оператора;
  • VBKeyName   - строковое значение, которое является именем внутреннего подраздела VB and VBA Program Setting. Мы используем свойство объекта App.Title, т.к. хотим удалить информацию из созданного нашей программой  раздела ;
  • Section     - строковое значение, которое является именем внутреннего подраздела VBKeyName. В нашем случае он носит имя PortSettings;
  • Key    - строковое значение, которое представляет имя параметра в подразделе PortSettings.В подразделе может быть много параметров и по-этому, мы указываем на желаемое – Flow control;


Если Вы захотите удалить сразу весь подраздел, а не некоторые параметры, то для этого используйте следующий синтаксис оператора DeleteSetting:

 DeleteSetting VBKeyName, Section ;

Поместив код DeleteSetting App.Title,"PortSettings" в Private Sub Command4_Click(), Вы удалите весь подраздел PortSettings.

А если Вы захотите убрать вообще все Ваши установки из Сиастемного Реестра, то воспользуйтесь следующим кодом:

Private Sub Command4_Click()
DeleteSetting App.Title
End Sub

***Внимание!!! Пользуйтесь оператором DeleteSetting очень осторожно! 




Комментарии

 Ваш комментарий к данному материалу будет интересен нам и нашим читателям!



Последние статьи: Программирование под ОС / Basic /

Основы работы с базами данных
11-02-2009   

Умение обращаться с файлами данных - чуть ли не одна из самых важных ступений в обучении программированию на Visual Basic! Здесь я постараюсь выложить только самые основные приёмы работы с объектом Data... подробнее

Кол. просмотров: общее - 3443 сегодня - 0

Эффективная работа с БД в VB 6.0
11-02-2009   

В статье рассматриваются способы повышения эффективности при разработке клиент-серверных СУБД-приложений в среде VisualBasic 6.0. Наиболее подробно освещены следующие аспекты проблемы... подробнее

Кол. просмотров: общее - 4261 сегодня - 0

Создание программы на Visual basic для вывода случайного числа в заданном интервале чисел
11-02-2009   

В данной статье будет показан способ написания программы для вывода случайного числа в заданном нами интервале чисел, также пошагово будет показано создание соответствующего интерфейса программы на VB6... подробнее

Кол. просмотров: общее - 3823 сегодня - 0

Техника программирования сложных окон в Visual Basic
11-02-2009   

Mногие из Вас наверняка видели в Windows программах окна нестандартной формы (круглые, треугольные и т.д.) и задавали себе вопрос: как мне сделать такое окно?... подробнее

Кол. просмотров: общее - 3717 сегодня - 0

Вызов функций по указателю
11-02-2009   

Вы читали мою первую статью на эту тему? Надеюсь, что нет. Она мне страшно не нравилась уже сразу после опубликования. К тому же, я получил немало откликов на тему мало информации, которые, конечно, считаю справедливыми... подробнее

Кол. просмотров: общее - 3721 сегодня - 0



  WWW.COMPROG.RU - 2009-2012 | Designed and Powered by Zaipov Renat | Projects