IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным. В описании темы указываем язык!!!

> Изменение реестра с помощью JS, Работа с параметрами
dron4ik
сообщение 11.11.2009 10:39
Сообщение #1


Бывалый
****

Группа: Пользователи
Сообщений: 318
Пол: Мужской

Репутация: -  0  +


привет всем. Задание такое, скрипт состоит из двух параметров.
1)первый параметр должен создавать ключ, где имя ключа должно передаваться через параметр(т.е.название ключа мы сами пишем),еще ключ должен создаваться в любой ветке т.е. ветку тоже указываем через параметр.
2)второй параметр должен задавать значение ключа и удаление ключа.
У мя есть пример, но он все делает автоматически без каких либо параметров т.е. ветки, значение ключей, название можно менять только в коде что неудобно для обычного пользователя.
помогите пожалуйста разобраться с параметрами(.

Код
//Пример работы с реестром на JScript
var WSHShell = WScript.CreateObject("WScript.Shell");
WSHShell.Popup("Создаем раздел");

WSHShell.RegWrite("HKCU\\MyRegKey\\", "Primer");
WSHShell.Popup("Создаем строковый параметр");
WSHShell.RegWrite("HKCU\\MyRegKey\\String", 1);
WSHShell.Popup("Создаем параметр DWORD");
WSHShell.RegWrite("HKCU\\MyRegKey\\DWORD", 2, "REG_DWORD");
WSHShell.Popup("Создаем двоичный параметр");
WSHShell.RegWrite("HKCU\\MyRegKey\\Binary", 3, "REG_BINARY");
WSHShell.Popup("Удаляем все параметры");
WSHShell.RegDelete("HKCU\\MyRegKey\\String");
WSHShell.RegDelete("HKCU\\MyRegKey\\DWORD");
WSHShell.RegDelete("HKCU\\MyRegKey\\Binary");
WSHShell.Popup("Удаляем раздел");
WSHShell.RegDelete("HKCU\\MyRegKey\\");
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
dron4ik
сообщение 11.11.2009 14:21
Сообщение #2


Бывалый
****

Группа: Пользователи
Сообщений: 318
Пол: Мужской

Репутация: -  0  +


Я нашел что то похожее в инете но оно написано на vbs.

Код
Dim Names
Dim WshShell
Set WshShell = CreateObject("WScript.Shell")
'Записать в реестр
'параметры:
'name - куда записать. Name должен начинаться с одного из корневых ключей: HKEY_CURRENT_USER - HKCU,
' HKEY_LOCAL_MACHINE  - HKLM, HKEY_CLASSES_ROOT - HKCR,    HKEY_USERS - HKEY_USERS,
' HKEY_CURRENT_CONFIG - HKEY_CURRENT_CONFIG. напр. "HKCU\Software\1C\1cv7\7.7\Test\script name"
'Value -  значение параметра
'strType - тип параметра, возможные значения "REG_SZ", "REG_EXPAND_SZ", "REG_DWORD", "REG_BINARY"
Sub RegWrite(name,Value,strType)
WshShell.RegWrite name,Value,strType
End Sub

'Получить значение параметра
'strName - значение параметра. strName должен начинаться с одного из корневых ключей: HKEY_CURRENT_USER - HKCU,
' HKEY_LOCAL_MACHINE  - HKLM, HKEY_CLASSES_ROOT - HKCR,    HKEY_USERS - HKEY_USERS,
' HKEY_CURRENT_CONFIG - HKEY_CURRENT_CONFIG. напр."HKCU\Software\1C\1cv7\7.7\Test\script name"
Function RegRead(strName)
strName = WshShell.RegRead(strName)
End Function

'Удалить раздел/параметр
'strName - значение раздела/параметра. strName должен начинаться с одного из корневых ключей:
' HKEY_CURRENT_USER - HKCU, HKEY_LOCAL_MACHINE  - HKLM, HKEY_CLASSES_ROOT - HKCR,    HKEY_USERS - HKEY_USERS,
' HKEY_CURRENT_CONFIG - HKEY_CURRENT_CONFIG.
'для удаления раздела StrName должен заканчиваться "\" (напр."HKCU\Software\1C\1cv7\7.7\Test\")
'для удаления параметра strName должен быть в виде "HKCU\Software\1C\1cv7\7.7\Test\script name"
Sub RegDelete(strName)
WshShell.RegDelete(strName)
End Sub

' -----------------------------------------------------------------------------
'Соответсвие значений корней реестра:
'HKEY_CLASSES_ROOT &H80000000
'HKEY_CURRENT_USER &H80000001
'HKEY_LOCAL_MACHINE &H80000002
'HKEY_USERS &H80000003
'HKEY_CURRENT_CONFIG &H80000005
'т.е. в нижеследующих функциях можно в параметре "rasdel" указывать (например
'если нужно обратиться к корню HKEY_CURRENT_USER) то можно указать
'или HKEY_CURRENT_USER или HKCU или &H80000001
' -----------------------------------------------------------------------------

'возвращает в переменную Names все подразделы в указанном разделе
'в виде строки с разделителем ";"
'напр.: "AddTemplate;AutoCompleteSymb;DisableTemplate;EnumMethDlg;ParamInfo;"
Function EnumSubKey(rasdel, strKeyPath, Names)
    If rasdel = "HKEY_CURRENT_USER" OR rasdel =  "HKCU" OR rasdel =  "&H80000001" Then
        rasdel = &H80000001
    elseif rasdel = "HKEY_LOCAL_MACHINE" OR rasdel =  "HKLM" OR rasdel =  "&H80000002" Then
        rasdel = &H80000002
    elseif rasdel = "HKEY_USERS" OR rasdel =  "&H80000003" Then
        rasdel = &H80000003
    elseif rasdel = "HKEY_CURRENT_CONFIG" OR rasdel =  "&H80000005" Then
        rasdel = &H80000005
    End If
strComputer = "."
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" &_
strComputer & "\root\default:StdRegProv")
oReg.EnumKey rasdel, strKeyPath, arrSubKeys
On Error Resume Next
For Each subkey In arrSubKeys
    Names =Names & subkey & ";"
Next
End Function

'возвращает в переменную Names параметры в указанном разделе
'в виде строки с разделителем ";"
'напр.: "lang;components;"
Function EnumValues(rasdel, strKeyPath, Names)
    If rasdel = "HKEY_CURRENT_USER" OR rasdel =  "HKCU" OR rasdel =  "&H80000001" Then
        rasdel = &H80000001
    elseif rasdel = "HKEY_LOCAL_MACHINE" OR rasdel =  "HKLM" OR rasdel =  "&H80000002" Then
        rasdel = &H80000002
    elseif rasdel = "HKEY_USERS" OR rasdel =  "&H80000003" Then
        rasdel = &H80000003
    elseif rasdel = "HKEY_CURRENT_CONFIG" OR rasdel =  "&H80000005" Then
        rasdel = &H80000005
    End If
strComputer = "."
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" &_
strComputer & "\root\default:StdRegProv")
oReg.EnumValues rasdel, strKeyPath, arrValueNames
On Error Resume Next
For Each ValueNames In arrValueNames
    Names =Names & ValueNames & ";"
Next
End Function

'возвращает в переменную Names параметры ,их значения и типы в указанном разделе
'в виде строки "lang=2,REG_SZ;components=3,REG_DWORD;", т.е.
'параметру lang соответствует значение 2 тип REG_SZ, а параметру components
'соответствует значение 3 тип REG_DWORD
Function EnumParamValues(rasdel, strKeyPath, Names)
const REG_SZ = 1
const REG_EXPAND_SZ = 2
const REG_BINARY = 3
const REG_DWORD = 4
const REG_MULTI_SZ = 7    
    If rasdel = "HKEY_CURRENT_USER" OR rasdel =  "HKCU" OR rasdel =  "&H80000001" Then
        ras = &H80000001
    elseif rasdel = "HKEY_LOCAL_MACHINE" OR rasdel =  "HKLM" OR rasdel =  "&H80000002" Then
        ras = &H80000002
    elseif rasdel = "HKEY_USERS" OR rasdel =  "&H80000003" Then
        ras = &H80000003
    elseif rasdel = "HKEY_CURRENT_CONFIG" OR rasdel =  "&H80000005" Then
        ras = &H80000005
    End If
strComputer = "."
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" &_
strComputer & "\root\default:StdRegProv")
oReg.EnumValues ras, strKeyPath, arrValueNames, arrValueTypes
On Error Resume Next
For i=0 To UBound(arrValueNames)
    Names =Names & arrValueNames(i) & "="
    Select Case arrValueTypes(i)
        Case REG_SZ
            tip = "REG_SZ"
        Case REG_EXPAND_SZ
            tip = "REG_EXPAND_SZ"
        Case REG_BINARY
            tip = "REG_BINARY"
        Case REG_DWORD
            tip = "REG_DWORD"
        Case REG_MULTI_SZ
            tip = "REG_MULTI_SZ"
    End Select
    str1 = rasdel & "\" & strKeyPath & "\" & arrValueNames(i)
    str = RegRead(str1)
    Names = Names & str1 & "," & tip & ";"
Next
End Function---------------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
dron4ik   Изменение реестра с помощью JS   11.11.2009 10:39
volvo   Почему ты все время недоговариваешь условие? Ну, е...   11.11.2009 13:11
dron4ik   Прежняя моя ошибка(.Если не вводим второй параметр...   11.11.2009 13:15
dron4ik   Я нашел что то похожее в инете но оно написано на ...   11.11.2009 14:21
volvo   Ну, а теперь посмотри, что передается в этот VBS. ...   11.11.2009 14:45
dron4ik   К примеру создаем раздел MyRegKey c ключом Мой кл...   11.11.2009 14:56
volvo   Что означает 1, и какого типа должно быть значение...   11.11.2009 15:19
dron4ik   любой тип к примеру dword. а что такое Split? До...   11.11.2009 15:21
volvo   Split - это функция, которая разобьет строку на ча...   11.11.2009 15:30
dron4ik   F:\Programs>cscript test_js.js "HKCU...   11.11.2009 15:32
volvo   Ну, вот так у меня отработало: //Пример работы с р...   11.11.2009 16:19
dron4ik   странно пробовал вашу прогу.. но у меня не создает...   11.11.2009 16:27
dron4ik   Запустилась)) F:\Programs>cscript test_js...   11.11.2009 17:02
volvo   Это не 2 ключа, это раздел (то, что "по умолч...   11.11.2009 17:13
dron4ik   Конец строки всегда явся значением ключа без имени...   11.11.2009 17:13
dron4ik   А что означают строки каждая в отдельности? var la...   11.11.2009 18:01


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 1.08.2025 18:07
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"