Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Реестр и копирование файлов Добавлено: 07.04.03 11:10  

Автор вопроса:  DeXTeR

У меня два вопроса.

1) Как проверить существует ли ключ реестра вообще или с определённым значением?

2) Как привязать копирование файлов к ProgressBar?

Чем разжёваннее - тем лучше :)

Ответить

  Ответы Всего ответов: 3  

Номер ответа: 1
Автор ответа:
 Irbis



Вопросов: 5
Ответов: 47
 Web-сайт: www.oplata.nm.ru
 Профиль | | #1
Добавлено: 07.04.03 23:14

1) Смотри кусок отмеченный >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

 

 

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

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

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

· Запустите редактор Системного Реестра, он находится в каталоге Windows – C:\Windows\Regedit.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",

Ответить

Номер ответа: 2
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #2
Добавлено: 08.04.03 02:12

Держи.
Думал как всегда буду полчаса конопатить винт и так ничего и найду. Но в этот раз повезло - сразу наткнулся.

Option Explicit
Private Type SHFILEOPSTRUCT
    hwnd As Long
    wFunc As Long
    pFrom As String
    pTo As String
    fFlags As Integer
    fAnyOperationsAborted As Long
    hNameMappings As Long
    lpszProgressTitle As String
End Type
Private Declare Function SHFileOperation Lib "Shell32.dll" Alias "SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long
Private Sys As SHFILEOPSTRUCT
Private Const FO_COPY = &H2& 'Copies the files specified in the
'pFrom member to the location
'specified in the pTo member.
Private Const FO_DELETE = &H3& 'Deletes the files specified in pFrom
'(pTo is ignored.)
Private Const FO_MOVE = &H1& 'Moves the files specified in pFrom
'to the location specified in pTo.
Private Const FO_RENAME = &H4& 'Renames the files specified in pFrom
Private Const FOF_SILENT = &H4
Private Const FOF_SIMPLEPROGRESS = &H100
Private Const FOF_NOCONFIRMATION = &H10
Private Const FOF_NOCONFIRMMKDIR = &H200
Private Const FOF_RENAMEONCOLLISION = &H8

Private Sub Form_Load()
Me.Show
Sys.wFunc = FO_COPY
Sys.pFrom = "c:\temp\*.*"
Sys.pTo = "d:\temp"
Sys.hwnd = Form1.hwnd
Sys.fFlags = FOF_SIMPLEPROGRESS
Call SHFileOperation(Sys)
End Sub

Ответить

Номер ответа: 3
Автор ответа:
 DeXTeR



Вопросов: 32
Ответов: 30
 Профиль | | #3 Добавлено: 10.04.03 12:37
А где же реестр?

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам