powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Windows [игнор отключен] [закрыт для гостей] / Как прочитать ветку реестра?
25 сообщений из 37, страница 1 из 2
Как прочитать ветку реестра?
    #34262311
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем спасибо заранее.

В эпоху файлов ini была функция API под названием GetProfileString, которая могла читать и одну строчку, и целую секцию. На смену файлам ini пришел реестр, для его чтения есть объект WshShell и его метод RegRead. Однако этот метод читает только одно значение. А как прочитать целую ветку? Мне все равно, будет ли ответ одной строчкой в программе или циклом по значениям.
...
Рейтинг: 0 / 0
Как прочитать ветку реестра?
    #34262474
Фотография rrrrrrrrrr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SDKLONG RegEnumValue(

HKEY hKey, // handle of key to query
DWORD dwIndex, // index of value to query
LPTSTR lpValueName, // address of buffer for value string
LPDWORD lpcbValueName, // address for size of value buffer
LPDWORD lpReserved, // reserved
LPDWORD lpType, // address of buffer for type code
LPBYTE lpData, // address of buffer for value data
LPDWORD lpcbData // address for size of data buffer
); - это?
...
Рейтинг: 0 / 0
Как прочитать ветку реестра?
    #34262485
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К сожалению, я работаю через JavaScript. Боюсь, что это не подойдет.
...
Рейтинг: 0 / 0
Как прочитать ветку реестра?
    #34262683
Фотография adv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сам не пробовал, глянь .

зы. ты гугл курил ?
...
Рейтинг: 0 / 0
Как прочитать ветку реестра?
    #34262718
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
advСам не пробовал, глянь .
RegRead - это то, что я упомянул в вопросе.

advзы. ты гугл курил ?
Нет, но могу.
...
Рейтинг: 0 / 0
Как прочитать ветку реестра?
    #34262785
Фотография adv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир Саныч advСам не пробовал, глянь .
RegRead - это то, что я упомянул в вопросе.
торможу.
...
Рейтинг: 0 / 0
Как прочитать ветку реестра?
    #34263207
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир Саныч advзы. ты гугл курил ?
Нет, но могу.
Курил. Не вставляет.
...
Рейтинг: 0 / 0
Как прочитать ветку реестра?
    #34265947
Бабай
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
такой вот совет попробую присоветовать.
скачай отсюда
http://www.jsware.net/jsware/scripts.php3#classpk

claspak.zip

и поразглядывай там RegCls.txt. метод: Public Function EnumSubKeys(RegPath, AList)
возможно эта техника тебя устроит.
на jscript придется самому переписать...
...
Рейтинг: 0 / 0
Как прочитать ветку реестра?
    #34265967
Бабай
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
идея метода там в том, что ветка экспортируется в файл командой
Код: plaintext
SH.Run "REGEDIT /E:A " & sTemp & " " & chr( 34 ) & sKey & chr( 34 ), , True 

а потом уже парсится этот файл.
...
Рейтинг: 0 / 0
Как прочитать ветку реестра?
    #34266024
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ого! Оно, конечно, спасибо, но... Я верю, что это будет работать, но я не могу себе позволить создавать файлы на диске у юзера Интернета. Слишком много ахиллесовых пят будет у моей программы. Неужели нет чего-то более прямого?
...
Рейтинг: 0 / 0
Как прочитать ветку реестра?
    #34266082
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Держи Саныч с барского плеча
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Const HKEY_LOCAL_MACHINE = &H80000002
strComputer = "."
Set StdOut=WScript.StdOut
Set objReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _
    strComputer & "\root\default:StdRegProv")
strKeyPath = "Software\Alcohol Soft"
objReg.EnumValues HKEY_LOCAL_MACHINE, strKeyPath, arrValueNames, arrValueTypes
For i= 0  to Ubound(arrValueNames)
	Wscript.Echo arrValueNames(i)
next 
Если ещё хочется вложения глянуть то вот

Код: 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.
25.
26.
27.
28.
29.
30.
31.
32.
33.
Const HKEY_LOCAL_MACHINE = &H80000002
strComputer = "."
Set objReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _
    strComputer & "\root\default:StdRegProv")
strKeyPath = "Software\Adobe"
objReg.EnumKey HKEY_LOCAL_MACHINE, strKeyPath, arrSubKeys
For Each subkey In arrSubKeys
    If subkey = "Acrobat Reader" Then
        find = True
        Path_reg = strKeyPath & "\" & subkey
        Exit For
    End If
Next
If Not find Then
    For Each subkey In arrSubKeys
        If subkey = "Adobe Acrobat" Then
            find = True
            Path_reg = strKeyPath & "\" & subkey
            Exit For
        End If
    Next
End If
If Not find Then
    execute_programm_path = ""
    Exit Function
Else
    objReg.EnumKey HKEY_LOCAL_MACHINE, Path_reg, arrSubKeys
    For Each subkey In arrSubKeys
        Version_Acr = subkey
    Next
End If
objReg.GetStringValue HKEY_LOCAL_MACHINE, Path_reg & "\" & Version_Acr & "\InstallPath\", "", dwValue
execute_programm_path = dwValue
Извини, что на vbs, но думаю разберёшься
...
Рейтинг: 0 / 0
Как прочитать ветку реестра?
    #34266286
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProgaДержи Саныч с барского плеча
Много-много благодарю, но... Пытаюсь переложить на JavaScript.

Код: plaintext
var objReg = new ActiveXObject("winmgmts:{impersonationLevel=impersonate}!\\\\.\\root\\default:StdRegProv");
Automation server can't create object.

Или я неправильно перекладываю?
...
Рейтинг: 0 / 0
Как прочитать ветку реестра?
    #34266325
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не неправильно, на яве тоже getobject
...
Рейтинг: 0 / 0
Как прочитать ветку реестра?
    #34266328
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
отсюда качни доку
быстрее разберёшься
...
Рейтинг: 0 / 0
Как прочитать ветку реестра?
    #34266384
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Progaне неправильно, на яве тоже getobject
Код: plaintext
var objReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\\\.\\root\\default:StdRegProv");
Та же ошибка...
...
Рейтинг: 0 / 0
Как прочитать ветку реестра?
    #34266423
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Proga отсюда качни доку
быстрее разберёшься
Качнул. Про синтаксис winmgmts там ничего не видать (хотя ошибка у меня, похоже, именно в нем).
...
Рейтинг: 0 / 0
Как прочитать ветку реестра?
    #34267799
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
var HKEY_LOCAL_MACHINE = 0x80000002;
var strKeyPath,result;
var arrValueNames;
var arrValueTypes;
var strComputer = ".";
var StdOut=WScript.StdOut;
var objReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\\\" + strComputer + "\\root\\default:StdRegProv");
...
Рейтинг: 0 / 0
Как прочитать ветку реестра?
    #34267823
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Proga
Код: plaintext
var objReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\\\" + strComputer + "\\root\\default:StdRegProv");

Вот-вот. Именно на это ошибка и выдается.
...
Рейтинг: 0 / 0
Как прочитать ветку реестра?
    #34267985
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир Саныч Proga
Код: plaintext
var objReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\\\" + strComputer + "\\root\\default:StdRegProv");

Вот-вот. Именно на это ошибка и выдается.
значит не админ машины
...
Рейтинг: 0 / 0
Как прочитать ветку реестра?
    #34267988
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у меня работает
...
Рейтинг: 0 / 0
Как прочитать ветку реестра?
    #34268028
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Progaзначит не админ машины
А это обязательно??? Пардон-с, тогда мне этот способ не подойдет...
...
Рейтинг: 0 / 0
Как прочитать ветку реестра?
    #34268210
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот конечный код
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
var HKEY_LOCAL_MACHINE = 0x80000002;
var i;
var strKeyPath,result,oInParam,oOutParam;
var arrValueNames;
var arrValueTypes;
var strComputer = ".";
var StdOut=WScript.StdOut;
var objReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\\\" + strComputer + "\\root\\default:StdRegProv");
var strKeyPath = "Software\\Alcohol Soft";
oMethod = objReg.Methods_.Item("EnumValues");
oInParam = oMethod.InParameters.SpawnInstance_();
oInParam.hDefKey = HKEY_LOCAL_MACHINE;
oInParam.sSubKeyName = strKeyPath;
oOutParam = objReg.ExecMethod_(oMethod.Name, oInParam);
if( oOutParam.sNames == null ) 
	{WScript.Quit( 0 );}
else
{
aNames = oOutParam.sNames.toArray();
for (i= 0 ;i<aNames.length;i++)
{WScript.Echo(aNames[i]);}
}
А кроме админа политика безопасности некому не даёт в реестре шариться.
Можно ещё через Locator попробовать, но мне кажется получишь то же самое
По Локатору смотри здесь
...
Рейтинг: 0 / 0
Как прочитать ветку реестра?
    #34268222
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
добавлю при использовании локатора есть тоже ограничения.
...
Рейтинг: 0 / 0
Как прочитать ветку реестра?
    #34268804
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProgaА кроме админа политика безопасности некому не даёт в реестре шариться.
Но упомянутый в моем вопросе RegRead у меня работает! И RegWrite тоже. Значит, либо неверно, что я не админ, либо неверно, что никому кроме админа.
...
Рейтинг: 0 / 0
Как прочитать ветку реестра?
    #34270187
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
P.S. Раньше я пробовал на работе, а сейчас попробовал дома. Та же ошибка и на той же строке.
...
Рейтинг: 0 / 0
25 сообщений из 37, страница 1 из 2
Форумы / Windows [игнор отключен] [закрыт для гостей] / Как прочитать ветку реестра?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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