Форум программистов, компьютерный форум, киберфорум
Наши страницы
VBScript/JScript/WSH/WMI/HTA
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
kreotodr
27 / 25 / 8
Регистрация: 15.08.2014
Сообщений: 521
1

Чтение и запись в реестр

19.02.2015, 08:40. Просмотров 1324. Ответов 3
Метки нет (Все метки)

Добрый день всем!
Будучи предельно напуган фразой "одно не осторожное движение с реестром и все улетит". Прошу Гуру форума простой пример на чтение и запись 2х ключей реестра:

Примеров нашел много в иненете, но стремаюсь что-то делать...Доверяю только Вам..Заранее спасибо

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders]
...
...
"Administrative Tools"="C:\\Users\\Alexsandr\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Administrative Tools"
"Personal"="M:\\My Documents"
....
....
Заранее спасибо за ответ...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.02.2015, 08:40
Ответы с готовыми решениями:

Запись из файла в реестр и обратно
Стоит следующая задача: Есть текстовый файл с несколькими строками. Надо...

Запись в реестр DWORD большого значения
Привет всем. Для работы сделал подборку программ, собрал их в WPI. Появилась...

VBScript vs Реестр
всем привет!) я только учусь писать на VBS... есть пару вопросов: 1) Как...

Реестр и MSConfig
Помогите чайнику !!!! Из чего состоит реестр, в каких директориях храниться...

Реестр и Internet Explorer
какая ветка реестра отвечает за панель избранного?можно ли добавить сайт в...

3
edward_freedom
19.02.2015, 11:17
  #2

Не по теме:

kreotodr, Сделай бекап реестра, и пробуй

0
kreotodr
27 / 25 / 8
Регистрация: 15.08.2014
Сообщений: 521
19.02.2015, 13:41  [ТС] 3
Лучший ответ Сообщение было отмечено Dragokas как решение

Решение

собстна, в любом случае спасибо..

читаем...
Visual Basic
1
2
3
4
5
Dim WshShell
Set WshShell = CreateObject("WScript.Shell")
 
iStr = "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Personal"
sReg = WshShell.RegRead(iStr)
Пишем...
Visual Basic
1
2
3
4
Dim WshShell
Set WshShell = CreateObject("WScript.Shell")
 
WshShell.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Personal", ".......", "REG_SZ"
Если метод не устойчивый просьба отписаться...
0
janxp
0 / 0 / 1
Регистрация: 30.10.2014
Сообщений: 7
24.02.2015, 22:31 4
Лучший ответ Сообщение было отмечено Dragokas как решение

Решение

Более широкие возможности дает WMI-библиотека WbemScripting.
Пример:
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function ReadRegStr(RootKey, KeyName, ValueName, Architecture)
{
    var oCtx = new ActiveXObject("WbemScripting.SWbemNamedValueSet");
    if (typeof Architecture === 'undefined')
        if (WshShell.Environment("PROCESS").Item("PROCESSOR_ARCHITECTURE").search(/64/ig) >= 0)
            Architecture = 64
        else
            Architecture = 32;
    oCtx.Add("__ProviderArchitecture", Architecture);
    var oLocator = new ActiveXObject("WbemScripting.SWbemLocator");
    var oWMI = oLocator.ConnectServer("", "root\\default", "", "", "", "", 0, oCtx);
    var oReg = oWMI.Get("StdRegProv");
    var oInParams = oReg.Methods_("GetStringValue").Inparameters;
    oInParams.Hdefkey = RootKey;
    oInParams.Ssubkeyname = KeyName;
    oInParams.Svaluename = ValueName;
    var oOutParams = oReg.ExecMethod_("GetStringValue", oInParams, 0, oCtx);
    return oOutParams.SValue;
}
Среди встроенных средств работы с реестром нет enum'ов, а в WMI - есть.
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
function EnumRegKeys(RootKey, KeyName, Architecture)
{
    var oCtx = new ActiveXObject("WbemScripting.SWbemNamedValueSet");
    if (typeof Architecture === 'undefined')
        if (WshShell.Environment("SYSTEM").Item("PROCESSOR_ARCHITECTURE").search(/64/ig) >= 0)
            Architecture = 64
        else
            Architecture = 32;
    oCtx.Add("__ProviderArchitecture", Architecture);
    var oLocator = new ActiveXObject("WbemScripting.SWbemLocator");
    var oWMI = oLocator.ConnectServer("", "root\\default", "", "", "", "", 0, oCtx);
    var oReg = oWMI.Get("StdRegProv");
    var oInParams = oReg.Methods_("EnumKey").Inparameters;
    oInParams.Hdefkey = RootKey;
    oInParams.Ssubkeyname = KeyName;
    var oOutParams = oReg.ExecMethod_("EnumKey", oInParams, 0, oCtx);
    if (oOutParams.sNames == null)
        return "";
    return oOutParams.sNames.toArray();
};
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.02.2015, 22:31

Ассоциации файлов и реестр
Всем привет! У меня тут вопрос возник связанный с безопасностью. Как сделать...

Из vbs результат в реестр
Здравствуйте есть вот такой скрипт Set TypeLib =...

Служба не вносит изменения в реестр
Всем привет. Почему если просто запустить сценарий к примеру reg add...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru