Страницы: 1
Rouslan
Это нормально и просмотру не мешает: папка-то открывается. Как ты верно подметил, меняются нелатинские символы на их шестнадцатеричные значения. Скрипт создан для открытия локальных файлов с любыми именами. "Недопустимые" символы в URL перекодируются шестнадцатеричными значениями.
Открой любую веб-страницу из файл-менеджера (проводника) и опиши результат. Гипертекст должен открыться в лисе с конвертированием нелатинских символов в шестнадцатеричные коды.
К лису можно (нужно) привязать и другие типы веб-страниц, например, SHTML.
Rouslan
Запускай последний скрипт, в нем есть обработчик ошибок. У тебя должно быть право редактирования реестра. В папке лиса создются два файла, FireFoxLocalFiles.reg для внесения изменений в реестр и FireFoxLocalFiles.vbs для быстрого запуска локальных файлов. Скрипт у меня работает на разных компьютерах и разных Win, так что запускай последний и если не прокататит подробно опиши полученные сообщения и еще что захочешь.
Anton
Вот это дельно. Оценим последний скрипт и сегодня-завтра выложу его в файлы.
hedgehog
В последнем скрипте есть обработчик ошибок, вот теперь можешь тестировать. Бэкап полезен, согласен, ввел его.
Концептуально в первом скрипте не предусматривалась реакция на отмену или закрытие, в этом случае скрипт просто вылетал, что и требовалось.
Для скрипта не имеет значения поверх старых он запущен или нет, он сделает все, что в его силах. :cool:
'Сохранить и запустить
'Начало файла fixFireFoxLocalFiles.vbs
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","
кнопка "отмена" в инпутбоксе не обрабатываетя.
Ты это серьезно сообщаешь или так, сдуру. Она должна обрабатываться?
зачем создавать .reg если изменения в реестре можно сделать прям из скрипта ?
Можно. Я это могу. :)) А нужно? Догадайся, почему это не сделано.
вывод - внимательнее читаем мануали :)
Читай. Правильно мыслишь.
В скрипте много чего не исследуется, так что давайте будем запускать скрипт целенаправленно. Скрипт вылетает и в других случаях: если лис не установлен, или кто-то специально удалил ветку Mozilla's в реестре, или изменил некую системную переменную. И это не страшно, сервер сценариев выдаст сообщение об ошибке и все.
Оцените автоматический и оптимизированный скрипт для просмотра локальных файлов.
Windows Scripting Host должен быть установлен (в Win 9X/Me придется WSH установить самостоятельно).
'Сохранить и запустить
'Начало файла fixFireFoxLocalFiles.vbs
set WshShell = WScript.CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
Input = InputBox("Версия FireFox","Build","1.0.1")
sFileFireFox = WshShell.RegRead("HKLM\Software\Mozilla\Mozilla Firefox " & Input & "\bin\PathToExe")
sWindows = WshShell.ExpandEnvironmentStrings("%WinDir%")
With fso
sFolderFireFox = .GetParentFolderName(sFileFireFox) & "\"
Set fixFile = .CreateTextFile(sFolderFireFox & "FireFoxLocalFiles.vbs", True)
End With
With fixFile
.WriteLine("Dim WshShell")
.WriteLine("Set WshShell = WScript.CreateObject(""WScript.Shell"")")
.WriteLine("WshShell.Run """"""" & sFolderFireFox & "FireFox.exe"""" "" & """"""file://"" & Replace(WScript.Arguments.UnNamed(0),""\"",""/"") & """"""""")
.Close
End
Страницы: 1