Страница 1 из 10
Задачки на внутренние ассоциации
Добавлено: Чт июл 15, 2010 14:30
Serge Yolkin
1. При даблклике на файле, скажем, .html, запустится браузер по умолчанию, напимер FF.
2. При создании внутренней ассоциации можно запускать альтернативный браузер, например Opera portable.
3. При создании меню внутренних ассоциаций можно запустить один из указанных в этом меню браузеров.
Вопрос: можно ли из этого меню вызвать браузер, установленный в винде по умолчанию, не используя скриптов, выдирающих из реестра путь к ассоциированной программе. Что нибудь типа:
FilterXX_open=%COMMANDER_DRIVE%\Opera\OperaPortable.exe "%1"
FilterXX_Правка=%COMMANDER_DRIVE%\Notepad\Notepad++.exe "%1"
FilterXX_Система=_SystemDefault "%1"
Добавлено: Чт июл 15, 2010 15:11
Вахмурка
Попробуй
FilterХХ_default=**
Об этом, кстати, написано в справке:
справка ТС писал(а):** A double asterisk opens the file with the default system association
Но, возможно, я плохо понял вопрос - меня насторожило слово "скрипт". Можно пояснить, какие скрипты имеются в виду?
Добавлено: Чт июл 15, 2010 15:42
Serge Yolkin
Спасибо! Со справкой я втупил: раздел про ini прочитал, а в настройки не залезал. А на счет скриптов - просто написал батник, который из реестра ассоциированные программы выдирает и с ними файл под курсором запускает (батники я быстро пишу).
В общем, тему можно закрывать.
Добавлено: Чт июл 15, 2010 20:26
ask-rus
Батник оставь, поглядим

.
Добавлено: Пт июл 16, 2010 11:32
Вахмурка
Что бы там ни было, вряд ли обойдется без regedit /e, HKEY_CLASSES_ROOT и чтения из файла *.reg

Добавлено: Пт июл 16, 2010 12:54
Volniy
Обойдется запросто:
reg.exe /?
Программа редактирования системного реестра из командной строки, версия 3.0
(C) Корпорация Майкрософт, 1981-2001. Все права защищены
REG <Операция> [Список параметров]
<Операция> == [ QUERY | ADD | DELETE | COPY |
SAVE | LOAD | UNLOAD | RESTORE |
COMPARE | EXPORT | IMPORT ]
Код возврата: (за исключением REG COMPARE)
0 - Успешно
1 - С ошибкой
Для получения справки по определенной операции введите:
REG <Operation> /?
Примеры:
REG QUERY /?
REG ADD /?
REG DELETE /?
REG COPY /?
REG SAVE /?
REG RESTORE /?
REG LOAD /?
REG UNLOAD /?
REG COMPARE /?
REG EXPORT /?
REG IMPORT /?
Тут стоит обратить внимание на
REG QUERY
Добавлено: Пт июл 16, 2010 16:44
Вахмурка
А сцылой в народ кинуть для завершения картины?
И вообще, так нечестно

Идеал- универсальный батник типа "скачал-запустил". А тут придется еще качать утилиту.
Если же ты намекаешь, что она входит в стандартную поставку винды, то речь точно не о вин2000.
Добавлено: Пт июл 16, 2010 17:04
Rodny
Вахмурка
В XP есть.
Добавлено: Пт июл 16, 2010 17:20
Вахмурка
2Rodny
Ага, спасибо. В августе вернусь из отпуска, посмотрю.
Добавлено: Пт июл 16, 2010 18:40
MVV
Вахмурка писал(а):А тут придется еще качать утилиту.
Rodny писал(а):В XP есть.
К своему удивлению я тоже, написав в консоли
reg и получив справку, полез в папку System32 и нашел стандартную утилиту
reg.exe.
Добавлено: Пт июл 16, 2010 19:42
Batya
В Win7 тоже есть.
Добавлено: Пт июл 16, 2010 23:02
Volniy
Вахмурка писал(а):речь точно не о вин2000.
In Windows 2000, REG.EXE version 2.0 was added as a additional tool on the CD-ROM. It has to be installed manually, though (on the CD-ROM run "\SUPPORT\TOOLS\SETUP.EXE").
А вообще говорят что и 3-ая версия (от XP) работает на W2K нормально. Сам не пробовал.
Добавлено: Вс июл 18, 2010 02:10
Serge Yolkin
Прошу прощения за задержку с ответом, батник, действительно, на встроенной reg:
Код: Выделить всё
@Echo Off
SetLocal
Reg QUERY HKCU\SOFTWARE\Clients\StartMenuInternet /ve>%TEMP%\%~n0.tmp
If %ERRORLEVEL% NEQ 0 Reg QUERY HKLM\SOFTWARE\Clients\StartMenuInternet /ve>%TEMP%\%~n0.tmp
For /f "tokens=3* skip=2" %%i In (%TEMP%\%~n0.tmp) Do (
If %%i EQU REG_SZ (Set #A=%%j) Else (Set #A=%%i))
Reg QUERY HKLM\SOFTWARE\Clients\StartMenuInternet\%#A%\Shell\Open\Command /ve>%TEMP%\%~n0.tmp
For /f "tokens=3* skip=2" %%i In (%TEMP%\%~n0.tmp) Do (
If %%i EQU REG_SZ (Set #A=%%j) Else (Set #A=%%i %%j))
Set #A=%#A:"=%
Call :SN "%#A%"
If Exist %1 (Set #B=%~f1) Else (Set #B=%1)
Start %#A% %#B%
Del /q %TEMP%\%~n0.* 1>Nul 2>Nul
Exit /b
:SN
Set #A=%~s1
Exit /b
Сергей Ёлкин (2010)
Немного намудрил, чтобы на XP, Vista и 7 работало одинаково (что не всегда так просто, как кажется). К тому же, этому файлу без разницы, запускать локальный файл, или адрес в иНете.
Добавлено: Вс июл 18, 2010 02:17
Serge Yolkin
Да, логика такая:
запуск без параметров - запускается браузер по умолчанию со страничкой по умолчанию;
запуск с локальным файлом в качестве параметра - запускаем браузер с этим файлом;
если батник такого файла не видит - думает, что это интернет-адрес и браузер попытается его открыть.
Добавлено: Вс июл 18, 2010 02:34
Serge Yolkin
И еще:
файл сохранять ТОЛЬКО с расщирением .cmd - новый синтаксис, знаете ли...
Если кому интересно, могу поделиться батником, функционально аналогичным ЧойсЭдитору - уже года два пользуюсь.