Чтение и запись реестра Windows при помощи VBA
Формулировка задачи:
Примеров в сети много, что-то немного не то, мне надо - например есть папка реестра HKEY_CURRENT_USER
в ней есть папка Software, сначала бы считать все папки этой папки Software, и всё что находится в ней, как? подскажите скрипт
в ней есть папка Software, сначала бы считать все папки этой папки Software, и всё что находится в ней, как? подскажите скрипт
Решение задачи: «Чтение и запись реестра Windows при помощи VBA»
textual
Листинг программы
<font color="blue">Option</font> <font color="blue">Explicit</font> <font color="#00AA00">'<br></font> <font color="#00AA00">'служит процедуре Считываем_реестр_папку_HKEY_CURRENT_USER_Software</font> <font color="blue">Private</font> <font color="blue">Const</font> MAX_PATH <font color="blue">As</font> <font color="blue">Long</font> = <font color="darkblue"><b>260</b></font> <font color="blue">Private</font> <font color="blue">Const</font> HKEY_CLASSES_ROOT <font color="blue">As</font> <font color="blue">Long</font> = &H80000000 <font color="blue">Private</font> <font color="blue">Const</font> HKEY_CURRENT_USER <font color="blue">As</font> <font color="blue">Long</font> = &H80000001 <font color="blue">Private</font> <font color="blue">Const</font> HKEY_LOCAL_MACHINE <font color="blue">As</font> <font color="blue">Long</font> = &H80000002 <font color="blue">Private</font> <font color="blue">Const</font> HKEY_USERS <font color="blue">As</font> <font color="blue">Long</font> = &H80000003 <font color="blue">Private</font> <font color="blue">Const</font> HKEY_PERFORMANCE_DATA <font color="blue">As</font> <font color="blue">Long</font> = &H80000004 <font color="blue">Private</font> <font color="blue">Const</font> HKEY_CURRENT_CONFIG <font color="blue">As</font> <font color="blue">Long</font> = &H80000005 <font color="blue">Private</font> <font color="blue">Const</font> KEY_READ <font color="blue">As</font> <font color="blue">Long</font> = &H20019 <font color="blue">Private</font> <font color="blue">Const</font> ERROR_SUCCESS <font color="blue">As</font> <font color="blue">Long</font> = <font color="darkblue"><b>0</b></font> <font color="blue">Private</font> <font color="blue">Type</font> FILETIME dwLowDateTime <font color="blue">As</font> <font color="blue">Long</font> dwHighDateTime <font color="blue">As</font> <font color="blue">Long</font> <font color="blue">End</font> <font color="blue">Type</font> <font color="blue">Private</font> <font color="blue">Declare</font> <font color="blue">Function</font> RegEnumKeyEx Lib <font color="teal">"advapi32"</font> Alias <font color="teal">"RegEnumKeyExA"</font> _ (<font color="blue">ByVal</font> hKey <font color="blue">As</font> <font color="blue">Long</font>, _ <font color="blue">ByVal</font> dwIndex <font color="blue">As</font> <font color="blue">Long</font>, _ <font color="blue">ByVal</font> lpName <font color="blue">As</font> <font color="blue">String</font>, _ lpcbName <font color="blue">As</font> <font color="blue">Long</font>, _ <font color="blue">ByVal</font> lpReserved <font color="blue">As</font> <font color="blue">Long</font>, _ <font color="blue">ByVal</font> lpClass <font color="blue">As</font> <font color="blue">String</font>, _ lpcbClass <font color="blue">As</font> <font color="blue">Long</font>, _ lpftLastWriteTime <font color="blue">As</font> FILETIME) <font color="blue">As</font> <font color="blue">Long</font> <font color="blue">Private</font> <font color="blue">Declare</font> <font color="blue">Function</font> RegOpenKeyEx Lib <font color="teal">"advapi32.dll"</font> Alias <font color="teal">"RegOpenKeyExA"</font> ( _ <font color="blue">ByVal</font> hKey <font color="blue">As</font> <font color="blue">Long</font>, _ <font color="blue">ByVal</font> pSubKey <font color="blue">As</font> <font color="blue">String</font>, _ <font color="blue">ByVal</font> ulOptions <font color="blue">As</font> <font color="blue">Long</font>, _ <font color="blue">ByVal</font> samDesired <font color="blue">As</font> <font color="blue">Long</font>, phkResult <font color="blue">As</font> <font color="blue">Long</font>) <font color="blue">As</font> <font color="blue">Long</font> <font color="#00AA00">'<br></font> <font color="#00AA00">'конец блока служащего процедуре Считываем_реестр_папку_HKEY_CURRENT_USER_Software</font> <font color="blue">Sub</font> Считываем_реестр_папку_HKEY_CURRENT_USER_Software() <font color="blue">Dim</font> dwIndex <font color="blue">As</font> <font color="blue">Long</font> <font color="blue">Dim</font> sTypeName <font color="blue">As</font> <font color="blue">String</font> <font color="blue">Dim</font> Все_программы <font color="blue">As</font> <font color="blue">String</font> <font color="blue">Dim</font> Программа <font color="blue">As</font> <font color="blue">String</font> <font color="blue">Dim</font> sSubkey <font color="blue">As</font> <font color="blue">String</font> * MAX_PATH <font color="blue">Dim</font> sClass <font color="blue">As</font> <font color="blue">String</font> * MAX_PATH <font color="blue">Dim</font> ft <font color="blue">As</font> FILETIME <font color="blue">Dim</font> lSubkey <font color="blue">As</font> <font color="blue">Long</font> <font color="blue">Dim</font> hKey <font color="blue">As</font> <font color="blue">Long</font> <font color="blue">If</font> RegOpenKeyEx(HKEY_CURRENT_USER, <font color="teal">"Software"</font>, <font color="darkblue"><b>0</b></font>, KEY_READ, hKey) <> ERROR_SUCCESS <font color="blue">Then</font> MsgBox$ <font color="teal">"В реестре не имеется папки HKEY_CURRENT_USER, Software"</font>: <font color="blue">Exit</font> <font color="blue">Sub</font> lSubkey = MAX_PATH Все_программы = <font color="teal">""</font> <font color="blue">Do</font> <font color="blue">While</font> RegEnumKeyEx(hKey, _ dwIndex, _ sSubkey, _ lSubkey, _ <font color="darkblue"><b>0</b></font>, sClass, _ MAX_PATH, ft) = ERROR_SUCCESS Программа = Left(sSubkey, lSubkey) Debug.<font color="blue">Print</font> Программа lSubkey = MAX_PATH dwIndex = dwIndex + <font color="darkblue"><b>1</b></font> Все_программы = Все_программы & Программа & Chr(<font color="darkblue"><b>13</b></font>) <font color="blue">Loop</font> MsgBox$ <font color="teal">"Закончено, в реестре, в папке HKEY_CURRENT_USER, Software находятся папки:"</font> & Chr(<font color="darkblue"><b>13</b></font>) & Все_программы & Chr(<font color="darkblue"><b>13</b></font>) & <font color="teal">"Всего: "</font> & dwIndex & <font color="teal">" шт."</font> <font color="#00AA00">'Ворд находится в папке HKEY_CURRENT_USER, Software, Микрософт, Офис, Ворд</font> <font color="blue">End</font> <font color="blue">Sub</font>
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д