Работа с реестром

        Объект WshShell предоставляет три метода для работы по редактированию реестра: для чтения, записи и удаления.

        Работа с ними очень проста, нужно только указывать ключи для записи, чтения или удаления.

        Для записи в реестр служит метод RegWrite.

        Синтаксис:

        object.RegWrite strName, anyValue [strType]

        где:

        object - объект WshShell

        strName – ключ или запись в реестре куда производится запись

        anyValue – записываемое значение

        strType – тип данных, в которых производится запись

        Возможные значения:

        REG_SZ;
        REG_EXPAND_SZ;
        REG_DWORD;
        REG_BINARY.
 


        RegRead – служит для чтения данных из реестра

        Синтаксис:

        object.RegRead(strName)

        где

        object - объект WshShell

        strName – ключ или запись для чтения
 
 

        RegDelete – служит для удаления данных из реестра

        Синтаксис:

        object.RegDelete(strName )

        где:

        object - объект WshShell

        strName – ключ или запись для удаления
 

        Примечание. Когда после параметра strName, во всех методах стоит косая черта ("\"), то это подразумевает ключ, а не запись.

        Для доступа к ключам реестра, для обозначения основных разделом могут применяться следующие сокращения:
 
 
Короткое имя
Обычное
HKCU HKEY_CURRENT_USER
HKLM HKEY_LOCAL_MACHINE
HKCR HKEY_CLASSES_ROOT
  HKEY_USERS
  HKEY_CURRENT_CONFIG
 

        Для иллюстрации работы с реестром, создадим сценарий, изменяющий загружаемую страницу при запуске Internet Explorer на текущую.

        [Данный сценарий, я привожу только для примера, поскольку стартовая страница в IE задается методом setHomePage]

        Данные сведения содержатся в реестре по адресу:

        “HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\Start Page”

        Составим простой сценарий, который будет изменять страницу, указанную по умолчанию на адрес данной страницы.

        Создадим страницу с двумя кнопками: для замены запускаемой при старте страницы и для восстановления исходных настроек:

    <HTML>
    <HEAD>
    <TITLE>
    Работаем с реестром
    </TITLE>
    </HEAD>
    </HEAD>

    <body>
    <H2>Работа с реестром из Internet Explorer</h2><p>

    <BUTTON onclick="NewStart">
    Сделать страницу стартовой
    </BUTTON>

    <BUTTON onClick="Old">
    Восстановить
    </BUTTON>

    </body>
    </html>


        Теперь дело за сценарием.
        При нажатии на кнопку NewStart сохраним текущую настройку в новом (резервном) ключе, и после этого изменим системные значения, задав в качестве стартовой нашу страницу.
        При нажатии кнопку Old сценарий прочитает нашу резервную запись и восстановит настройки стартовой страницы.

    <HTML>
    <HEAD>
    <TITLE>
    Работаем с реестром
    </TITLE>
    </HEAD>

    <script language=VBS>
    Dim x

    Sub NewStart()

    on error resume next

    Dim WSHShell, Y, Start, newStart

    'предлагаем изменить стартовую страницу:
    Y = MsgBox("Вы действительно хотите сделать данную страницу стартовой?", 36, "Редактирование реестра")
    If Y = vbYes Then
 

    Set WSHShell = CreateObject("WScript.Shell")

    'получаем адрес страницы:
    newStart = window.location.href

    'получам страртовую страницу IE:
    Start = WSHShell.RegRead("HKCU\Software\Microsoft\Internet Explorer\Main\Start Page")

    'Делаем резервный ключ:
    WSHShell.RegWrite "HKCU\Software\Microsoft\Internet Explorer\XXX\", ""

    'Куда помещаем текущую стартовую страницу IE:
    WSHShell.RegWrite "HKCU\Software\Microsoft\Internet Explorer\XXX\OldStart", Start

    'назначаем новую стартовую страницу:
    WSHShell.RegWrite "HKCU\Software\Microsoft\Internet Explorer\Main\Start Page", newStart

    'Создаем и присваиваем параметру Изменение значение TRUE,
    'чтобы в последующем сценарий знал, что он уже ранее изменял
    'предыдущие настройки:

    WSHShell.RegWrite "HKCU\Software\Microsoft\Internet Explorer\Main\Изменение", "Да"

    MsgBox "Новая стартовая страница IE:" & Chr(10) & newStart

    Else
    MsgBox "Стартовая страница не изменилась"
    End If
    End Sub

    Sub Old()
    Dim WSHSell2, Older
    on error resume next
    Set WSHShell = CreateObject("WScript.Shell")

    x =  WSHShell.RegRead("HKCU\Software\Microsoft\Internet Explorer\Main\Изменение")

    'Если изменения сценарием были сделаны, то начинаем восстанавливать предыдущую     'стартовую страницу. В противном случае кнопка не будет производить изменений:

    If  x = "Да"  Then
 

    Older = WSHShell.RegRead("HKCU\Software\Microsoft\Internet Explorer\XXX\OldStart")

    'назначаем новую стартовую страницу:
    WSHShell.RegWrite "HKCU\Software\Microsoft\Internet Explorer\Main\Start Page", Older

    'удаляем резервный ключ со всеми значениями:
    WSHShell.RegDelete "HKCU\Software\Microsoft\Internet Explorer\XXX\"

    'удаляем значение "Изменение":
    WSHShell.RegDelete "HKCU\Software\Microsoft\Internet Explorer\Main\Изменение"

    'сообщаем о восстановлении:
    MsgBox "Стартовая страница восстановлена"

    Else
    MsgBox "Сценарий ранее не изменял настройки страницы" & Chr(10)  & "Поэтому страница не может быть изменена"
    End If
    End Sub

    </script>
    </HEAD>

    <body>
    <H2>Работа с реестром из Internet Explorer</h2><p>
    <BUTTON onclick="NewStart">
    Сделать страницу стартовой
    </BUTTON>

    <BUTTON  onclick="Old">
    Восстановить
    </BUTTON>
    </body>
    </html>
 



Hosted by uCoz