powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Вопрос по Windows реестрам
5 сообщений из 5, страница 1 из 1
Вопрос по Windows реестрам
    #36896107
Komil_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VBA:
1). Как можно в VBA программно проверить существует ли тот или иной Windows реестр?
2). Как можно получить значения свойства того или иного Windows реестра?
3). Как можно создать Windows реестр?
4). Необходимо ли для всего этого права “admin” или достаточно “power user”? А если пользователь только “user”, а не “power user”?

ИМХО наверное только средствами VBA этого достичь невозможно, мне кажется для этого нужны API функции. Но вот какие, я к сожалению не знаю.
Порылся в форуме, но там в основном VB6 или VB.Net. А подходящие примеры на VBA очень мало.

Я в форуме нашёл такой ответ на 3-вопрос
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Set WS = CreateObject("WScript.Shell")
'пытаемся удалить раздел
On Error Resume Next
WS.RegDelete "HKEY_CURRENT_USER\Software\Microsoft\Office\Common\Security\"
    
If Err.Number <>  0  Then 'условие, если удалить не удалось, значит, раздела не было, тогда создаём его
WS.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Office\Common\Security\UFIControls",  1 , "REG_DWORD"
End If
On Error GoTo  0 

В этом примере используется объект "WScript.Shell". В каком референсе он находится? Попытался включить в VBA проект "Microsoft Script Control", "Microsoft Scripting Runtime", "Microsoft Scriplet Library", "ScriptPW", но там его нет. Поэтому приходится объявлять Dim WB As Object

А чтобы узнать существует ли реестр (1-вопрос) методом удаления, в смысле если удаляется, значит существовал, меня не устраивает. Сами понимаете чем это чревато. А вот попытаться методом создания, т.е. если существует уже, то возникнет ошибка, то можно использовать. Но тоже какой то корявый код получится. Хотелось бы сразу каким-то методом узнать существование.

А вообще если укажите ссылку на исчерпывающую информацию про Windows реестрам (желательно на русском) буду чрезвычайно признателен.
...
Рейтинг: 0 / 0
Вопрос по Windows реестрам
    #36896349
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Komil_Порылся в форуме, но там в основном VB6
в данном случае значения не имеет

Komil_WS.RegDelete
WS.RegWrite

Очевидно, существует и RegRead

Komil_В этом примере используется объект "WScript.Shell". В каком референсе он находится?
Windows Script Host Object Model
C:\WINDOWS\system32\wshom.ocx

Есть еще API:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
'RegCloseKey                Releases a handle to the specified registry key.
'RegConnectRegistry         Establishes a connection to a predefined registry handle on another computer.
'RegCreateKeyEx             Creates the specified registry key.
'RegDeleteKey               Deletes a subkey.
'RegDeleteValue             Removes a named value from the specified registry key.
'RegDisablePredefinedCache  Disables the predefined registry handle table of HKEY_CURRENT_USER for the specified process.
'RegEnumKeyEx               Enumerates subkeys of the specified open registry key.
'RegEnumValue               Enumerates the values for the specified open registry key.
'RegFlushKey                Writes all the attributes of the specified open registry key into the registry.
'RegGetKeySecurity          Retrieves a copy of the security descriptor protecting the specified open registry key.
'RegLoadKey                 Creates a subkey under HKEY_USERS or HKEY_LOCAL_MACHINE and stores registration information from a specified file into that subkey.
'RegNotifyChangeKeyValue    Notifies the caller about changes to the attributes or contents of a specified registry key.
'RegOpenCurrentUser         Retrieves a handle to the HKEY_CURRENT_USER key for the user the current thread is impersonating.
'RegOpenKeyEx               Opens the specified registry key.
'RegOpenUserClassesRoot     Retrieves a handle to the HKEY_CLASSES_ROOT key for the specified user.
'RegOverridePredefKey       Maps a predefined registry key to a specified registry key.
'RegQueryInfoKey            Retrieves information about the specified registry key.
'RegQueryMultipleValues     Retrieves the type and data for a list of value names associated with an open registry key.
'RegQueryValueEx            Retrieves the type and data for a specified value name associated with an open registry key.
'RegReplaceKey              Replaces the file backing a registry key and all its subkeys with another file.
'RegRestoreKey              Reads the registry information in a specified file and copies it over the specified key.
'RegSaveKey                 Saves the specified key and all of its subkeys and values to a new file.
'RegSetKeySecurity          Sets the security of an open registry key.
'RegSetValueEx              Sets the data and type of a specified value under a registry key.
'RegUnLoadKey               Unloads the specified registry key and its subkeys from the registry.
...
Рейтинг: 0 / 0
Вопрос по Windows реестрам
    #36896840
Komil_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

Спасибо за ответ.
Особенно за C:\WINDOWS\system32\wshom.ocx - Windows Script Host Object Model!

Оказывается библиотека IWshRuntimeLibrary имеет много полезных функций, в том числе и чтение / запись / удаление реестров.
...
Рейтинг: 0 / 0
Вопрос по Windows реестрам
    #36896873
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Komil_Спасибо за ответ.
Особенно за C:\WINDOWS\system32\wshom.ocx - Windows Script Host Object Model!

Честно говоря, я ответ не знал.
regedit => F3 => WScript
...
Рейтинг: 0 / 0
Вопрос по Windows реестрам
    #36896887
Валентин67
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Komil_А вообще если укажите ссылку на исчерпывающую информацию про Windows реестрам (желательно на русском) буду чрезвычайно признателен.

Ну, во-первых, полностью исчерпывающей информации даже не во всех книгах найдете.
Вот неплохой материал по реестру на VB - просмотрите его
Внизу страницы не упустите из виду гиперссылку: "Грамотно работаем с реестром"
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Вопрос по Windows реестрам
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]