Показать полную графическую версию : [решено] Найти количество подразделов в разделе.
[забыл подписать в заголовке "Работа с Реестром."]
Здравствуйте, возникла необходимость посчитать в заданном разделе количество подразделов. Ну и записать имена подразделов в массив например. Помогите пожалуйста ссылкой/советом/куском кода.
Помогите пожалуйста ссылкой/советом/куском кода. »
Const HKCR = &H80000000
Const HKCU = &H80000001
Const HKLM = &H80000002
Const HKU = &H80000003
Dim objReg, strPath, arrSubKeys
Set objReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")
strPath = "Software"
objReg.EnumKey HKLM, strPath, arrSubKeys
' ----------------------------------------
' Вывод массива и его размерности на экран
' ----------------------------------------
If Not(IsArray(arrSubKeys)) Then WScript.Quit
strSubKeys = UBound(arrSubKeys) & vbCrLf & "---" & vbCrLf
For Each strSubKey In arrSubKeys
strSubKeys = strSubKeys & strSubKey & vbCrLf
Next
WScript.Echo strSubKeys
amel27
Спасибо Вам, то что нужно!
If Not(IsArray(arrSubKeys)) Then WScript.Quit
Не мог бы кто нибудь сказать почему метод EnumKey бывает что возвращает не массив а NULL? тут столь элегантно обходится этот вопрос...
Например, пытаюсь прочитать подразделы ключа:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate
в результате при перечислении в цикле обращение к arrSubKeys бомбит ошибками типа "обьект не является семейством", "несоответствие типа" и пр... такое бывает на разных ключах, влияние разрешений на ветку не выявлено.
Похоже что на системах Win7x64 скрипт читает этот раздел из ветки WOW6432Node, где WindowsUpdate соотв-но нету, отсюда нестыковки. Походу дело в этом... и как быть тогда?
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.