Задачки на внутренние ассоциации

Обсуждение Total Commander. Установка, использование, настройка, решение проблем, скрытые функции. Обсуждение новых версий.

Модераторы: Моторокер, Avada, CaptainFlint, Nik, d-view

Serge Yolkin
Сообщения: 664
Зарегистрирован: Сб июл 25, 2009 11:12

Задачки на внутренние ассоциации

Сообщение 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"
Аватара пользователя
Вахмурка
Сообщения: 2587
Зарегистрирован: Пн дек 27, 2004 14:47
Откуда: Большая деревня Москва
Контактная информация:

Сообщение Вахмурка »

Попробуй
FilterХХ_default=**
Об этом, кстати, написано в справке:
справка ТС писал(а):** A double asterisk opens the file with the default system association
Но, возможно, я плохо понял вопрос - меня насторожило слово "скрипт". Можно пояснить, какие скрипты имеются в виду?
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Serge Yolkin
Сообщения: 664
Зарегистрирован: Сб июл 25, 2009 11:12

Сообщение Serge Yolkin »

Спасибо! Со справкой я втупил: раздел про ini прочитал, а в настройки не залезал. А на счет скриптов - просто написал батник, который из реестра ассоциированные программы выдирает и с ними файл под курсором запускает (батники я быстро пишу).

В общем, тему можно закрывать.
Аватара пользователя
ask-rus
Сообщения: 2077
Зарегистрирован: Вт ноя 10, 2009 14:06
Откуда: Russian Federation

Сообщение ask-rus »

Батник оставь, поглядим :) .
«Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица
Аватара пользователя
Вахмурка
Сообщения: 2587
Зарегистрирован: Пн дек 27, 2004 14:47
Откуда: Большая деревня Москва
Контактная информация:

Сообщение Вахмурка »

Что бы там ни было, вряд ли обойдется без regedit /e, HKEY_CLASSES_ROOT и чтения из файла *.reg ;)
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Аватара пользователя
Volniy
Сообщения: 585
Зарегистрирован: Ср дек 15, 2004 00:17
Откуда: Местный

Сообщение 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
Аватара пользователя
Вахмурка
Сообщения: 2587
Зарегистрирован: Пн дек 27, 2004 14:47
Откуда: Большая деревня Москва
Контактная информация:

Сообщение Вахмурка »

А сцылой в народ кинуть для завершения картины?
И вообще, так нечестно :( Идеал- универсальный батник типа "скачал-запустил". А тут придется еще качать утилиту.
Если же ты намекаешь, что она входит в стандартную поставку винды, то речь точно не о вин2000.
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Аватара пользователя
Rodny
Сообщения: 949
Зарегистрирован: Ср янв 24, 2007 00:59
Откуда: Могилёв, Беларусь

Сообщение Rodny »

Вахмурка
В XP есть.
Аватара пользователя
Вахмурка
Сообщения: 2587
Зарегистрирован: Пн дек 27, 2004 14:47
Откуда: Большая деревня Москва
Контактная информация:

Сообщение Вахмурка »

2Rodny
Ага, спасибо. В августе вернусь из отпуска, посмотрю.
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Вахмурка писал(а):А тут придется еще качать утилиту.
Rodny писал(а):В XP есть.
К своему удивлению я тоже, написав в консоли reg и получив справку, полез в папку System32 и нашел стандартную утилиту reg.exe.
Аватара пользователя
Batya
Сообщения: 2237
Зарегистрирован: Ср дек 15, 2004 09:51
Откуда: Москва, Россия

Сообщение Batya »

В Win7 тоже есть.
Нет, я не сплю. Я просто медленно моргаю.
Аватара пользователя
Volniy
Сообщения: 585
Зарегистрирован: Ср дек 15, 2004 00:17
Откуда: Местный

Сообщение 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 нормально. Сам не пробовал.
Serge Yolkin
Сообщения: 664
Зарегистрирован: Сб июл 25, 2009 11:12

Сообщение 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 работало одинаково (что не всегда так просто, как кажется). К тому же, этому файлу без разницы, запускать локальный файл, или адрес в иНете.
Serge Yolkin
Сообщения: 664
Зарегистрирован: Сб июл 25, 2009 11:12

Сообщение Serge Yolkin »

Да, логика такая:

запуск без параметров - запускается браузер по умолчанию со страничкой по умолчанию;

запуск с локальным файлом в качестве параметра - запускаем браузер с этим файлом;

если батник такого файла не видит - думает, что это интернет-адрес и браузер попытается его открыть.
Serge Yolkin
Сообщения: 664
Зарегистрирован: Сб июл 25, 2009 11:12

Сообщение Serge Yolkin »

И еще:

файл сохранять ТОЛЬКО с расщирением .cmd - новый синтаксис, знаете ли...

Если кому интересно, могу поделиться батником, функционально аналогичным ЧойсЭдитору - уже года два пользуюсь.
Ответить