Что нового

RegWrite() Изменение олицетворения через реестр

GuRuS

Новичок
Сообщения
4
Репутация
0
Добрый день!
Помогите пожалуйста разобраться.
Пишу программу которая будет изменять уровень олицетворения через ключ реестра. Но почему-то ни как не могу изменить параметр в реестре.
Код:
$sPath = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Ole", "LegacyImpersonationLevel") ;проверяем уровень олицетворения
$answer = InputBox("Редактирование олицетворения", "Текущее значение олицетворения равно: " & $sPath & Chr(10) & "1 - Аноним" & Chr(10) & "2 - Определить"& Chr(10) & "3 - Олицетворение" & Chr(10) & "4 - Делегирование"  & Chr(10) & Chr(10) & "Для изменения олицетворения введите значен от 1 до 4 и нажмите ОК", "Введите сюда значение от 1 до 4", "", 350, 220 )
If $answer>=1 Then
   if $answer<=4 Then
	  RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Ole", "LegacyImpersonationLevel", "REG_DWORD", $answer)
	  if @error then MsgBox(0, 'Error', @error)

   Else
	  MsgBox(0, 'Ошибка', "Введенное знавение не попадает в интервал от 1 до 4." & Chr(10) & "                Изменения не были произведены!")
   EndIf
Else
   MsgBox(0, 'Ошибка', "Введенное знавение не попадает в интервал от 1 до 4." & Chr(10) & "                Изменения не были произведены!")
EndIf


Беда где то в этой строке
Код:
RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Ole", "LegacyImpersonationLevel", "REG_DWORD", $answer)

Постоянно выдает Error = 1
Что я не так делаю?
 

СН3СН2ОН

Знающий
Сообщения
78
Репутация
12
Код:
$sPath = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Ole", "LegacyImpersonationLevel") ;проверяем уровень олицетворения
ConsoleWrite($sPath & @CRLF)
$answer = InputBox("Редактирование олицетворения", "Текущее значение олицетворения равно: " & $sPath & Chr(10) & "1 - Аноним" & Chr(10) & "2 - Определить"& Chr(10) & "3 - Олицетворение" & Chr(10) & "4 - Делегирование"  & Chr(10) & Chr(10) & "Для изменения олицетворения введите значен от 1 до 4 и нажмите ОК", "Введите сюда значение от 1 до 4", "", 350, 220 )
If $answer>=1 Then
   if $answer<=4 Then
      RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Ole", "LegacyImpersonationLevel", "REG_DWORD", $answer)
	  $sPath = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Ole", "LegacyImpersonationLevel") ;проверяем уровень олицетворения
	  ConsoleWrite($sPath & @CRLF)
      if @error then MsgBox(0, 'Error', @error)

   Else
      MsgBox(0, 'Ошибка', "Введенное знавение не попадает в интервал от 1 до 4." & Chr(10) & "                Изменения не были произведены!")
   EndIf
Else
   MsgBox(0, 'Ошибка', "Введенное знавение не попадает в интервал от 1 до 4." & Chr(10) & "                Изменения не были произведены!")
EndIf


WinXP, Autoit 3.12 все удачно, возможно у вас нет доступа к редактированию реестра
и таки да что этот параметр делает - очень интересно
 

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
GuRuS [?]
Постоянно выдает Error
На Windows Vista и выше при включённом UAC в HKEY_LOCAL_MACHINE можно вносить изменения только с правами администратора. Добавьте в начало скрипта
Код:
#RequireAdmin
 
Верх