Option Explicit Dim WshShell, sInput, sFileFireFox, sWindows, sFolderFireFox, fso, fixFile Dim sMsg1, sMsg2, sMsg3, sMsg4, sName1, sName2, sName3, iFlag On Error Resume Next set WshShell = WScript.CreateObject("WScript.Shell") Set fso = CreateObject("Scripting.FileSystemObject") sName1 = "FireFoxLocalFiles.vbs" sName2 = "FireFoxLocalFiles.old.reg" sName3 = "FireFoxLocalFiles.reg" sMsg1 = "Системная папка Windows не найдена" sMsg2 = "Браузер FireFox не найден" sMsg3 = "Не удалось создать файл " sMsg4 = "Потребуется вручную запустить файл " & sName3 & " c правом редактирования реестра" iFlag=0 sWindows = WshShell.ExpandEnvironmentStrings("%WinDir%") If Not fso.FolderExists(sWindows) then sWindows = InputBox("Укажите системную папку", sMsg1,":\Windows") If sWindows = "" Then WScript.Quit(0) ElseIf Not fso.FolderExists(sWindows) Then MsgBox sMsg1 WScript.Quit(1) End If Err.Clear sFileFireFox = InputBox("Версия FireFox","Build","1.0.1") if sFileFireFox="" then WScript.Quit(0) sFileFireFox = WshShell.RegRead("HKLM\Software\Mozilla\Mozilla Firefox " & sFileFireFox & "\bin\PathToExe") If Err.Number<>0 then Err.Clear sFileFireFox = InputBox("Укажите месторасположение браузера FireFox",sMsg2, fso.GetDriveName(sWindows) & "\Program Files\Mozilla FireFox\FireFox.exe") End If If sFileFireFox="" then WScript.Quit(0) ElseIf Not fso.FileExists(sFileFireFox) Then MsgBox sMsg2 WScript.Quit(2) End If With fso sFolderFireFox = .GetParentFolderName(sFileFireFox) & "\" Set fixFile = .CreateTextFile(sFolderFireFox & "FireFoxLocalFiles.vbs", True) End With With fixFile .WriteLine("Option Explicit") .WriteLine("Dim WshShell") .WriteLine("Set WshShell = WScript.CreateObject(""WScript.Shell"")") .WriteLine("WshShell.Run """"""" & sFolderFireFox & "FireFox.exe"""" "" & """"""file://"" & Replace(WScript.Arguments.UnNamed(0),""\"",""/"") & """"""""") .Close If Err.Number<>0 Then MsgBox "Невозможно сохранить файл " & sFolderFireFox & sName1 WScript.Quit(3) End If End With 'Сохраняем старое значение параметра при его наличии в reg файле sInput = WshShell.RegRead("HKCR\FirefoxHTML\shell\open\command\") If Err.Number=0 Then sInput = "@=""" & Replace(Replace(sInput,"\","\\"),"""","\""") & """" Else Err.Clear sInput = "@=-" End If Set fixFile = fso.CreateTextFile(sFolderFireFox & sName2, True) With fixFile .WriteLine("REGEDIT4") .WriteLine("") .WriteLine("[HKEY_CLASSES_ROOT\FirefoxHTML\shell\open\command]") .WriteLine(sInput) .Close If Err.Number<>0 Then Err.Clear MsgBox sMsg3 & sFolderFireFox & sName2 iFlag = iFlag + 1 End If End With 'Записываем новое значение параметра WshShell.RegWrite "HKCR\FirefoxHTML\shell\open\command\","""" & sWindows & "\System32\WScript.exe"" """ & sFolderFireFox & sName1 & """ / ""%1""","REG_EXPAND_SZ" If Err.Number<>0 Then Err.Clear WshShell.Run("""" & sFolderFireFox & sName3 & """") If Err.Number<>0 Then Err.Clear MsgBox sMsg4 iFlag = iFlag + 1 End If End If 'Создаем reg файл Set fixFile = fso.CreateTextFile(sFolderFireFox & sName3, True) With fixFile .WriteLine("REGEDIT4") .WriteLine("") .WriteLine("[HKEY_CLASSES_ROOT\FirefoxHTML\shell\open\command]") .WriteLine("@=""\""" & Replace(sWindows,"\","\\") & "\\System32\\WScript.exe\"" \""" & Replace(sFolderFireFox,"\","\\") & sName1 & "\"" / \""%1\""""") .Close If Err.Number<>0 Then Err.Clear MsgBox sMsg3 & sFolderFireFox & sName3 iFlag = iFlag + 1 End If End With If iFlag=0 Then MsgBox "Готов к локальному просмотру", vbInformation, "от Firefox" Else MsgBox "Могу не смочь", vbExclamation, "от Firefox" End If |