Forum

Пожалуйста or Регистрация для создания сообщений и тем.

Доступ запрещен

Всем привет! Сделал скрипт, который в один клик добавляет три ключа в реестр, и, с помощью .exe-шника от NotepadReplacer, перенаправляет все запросы со стандартного блокнота на Sublime Text. При повторном клике на скрипт, он удаляет эти три ключа и при запуске блокнота снова запускается стоковый.
Проблема в том, что при попытке удалить [simple_tooltip content='HKLM\\SOFTWARE\\Binary Fortress Software\']эту ветку[/simple_tooltip], он выдает ошибку доступа. Однако, при удалении [simple_tooltip content='HKLM\\SOFTWARE\\Binary Fortress Software\\Notepad Replacer\']этой же ветки[/simple_tooltip], уровнем ниже, все удаляется. При этом вручную [simple_tooltip content='HKLM\\SOFTWARE\\Binary Fortress Software\']эта ветка[/simple_tooltip] удаляется. Можно каким-то образом удалить заблокированную ветку с помощью скрипта?

сам скрипт

Const HKLM = &H80000002

strComputer = "."

Set objRegistry = GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv")
set fso = CreateObject("Scripting.FileSystemObject")
set co = CreateObject("WScript.Shell")
Set key = CreateObject("WScript.Shell")

exe = "sublime_text.exe"
scrptdr = Wscript.ScriptFullName
scriptdir = replace(WScript.ScriptFullName,WScript.ScriptName,"")
strKeyPath = "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe"
strName = "Debugger"

objRegistry.GetStringValue HKLM,strKeyPath,strName,strValue

if IsNull(strValue) then
key.RegWrite "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe\Debugger", scriptdir & "NotepadReplacer.exe"
key.RegWrite "HKLM\SOFTWARE\Binary Fortress Software\Notepad Replacer\Target", scriptdir & exe
key.RegWrite "HKLM\SOFTWARE\WOW6432Node\Binary Fortress Software\Notepad Replacer\Target", scriptdir & exe
fso.MoveFile scrptdr, CurrentDirectory & "Notepad replaced.vbs"
Wscript.Echo "Notepad replaced"
else
key.RegDelete "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe\Debugger"
key.RegDelete "HKLM\SOFTWARE\Binary Fortress Software\Notepad Replacer\"
key.RegDelete "HKLM\SOFTWARE\WOW6432Node\Binary Fortress Software\Notepad Replacer\"
fso.MoveFile scrptdr, CurrentDirectory & "Notepad is standard.vbs"
Wscript.Echo "Notepad ia standard"

end if

 

Добрый🖐.
Если ветка не пуста, то он не удалит командой СкопированоRegDelete, тут нужен рекурсивный метод удаления.
Тебе нужно это, примеры там есть.

Удаленный пользователь отреагировал на эту запись.
Удаленный пользователь

Михаил, Вы уже столько раз Меня выручали. Спасибо большое!