Модераторы: bartram, Akella

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ассоциация файлов с программой из bat-файла 
:(
    Опции темы
Sanek123
Дата 2.6.2010, 15:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 201
Регистрация: 22.10.2008

Репутация: нет
Всего: нет



Здравствуйте.

В операционной системе windows, как и в других есть ассоциация файлов с приложениями их исполняющими. 
Где именно храница информация об ассоциации типов файлов.

Необходимо из bat-файла определенной функцией установить ассоциацию, к примеру:
Код

команда "типы файлов" "название проги" "путь к проге" "иконка документа"

или
Код

Команда "*.htm, *.html, *.mht" "IExplorer" "C:\Windows\IExplorer\IExplorer.exe" "C:\Windows\System32\shell.dll -25"


Есть ли вообще такие команды? или как можно этого добиться (можно с извращениями).
--------------------
Вас разыскивают бойцы 139-го порта...
PM MAIL   Вверх
Стас
Дата 2.6.2010, 15:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 772
Регистрация: 27.10.2006
Где: Orenburg

Репутация: 2
Всего: 13



Все ассоциации хранятся в разделе реестра HKEY_CLASSES_ROOT. Для каждого расширения прописаны действия. И думаю, если
через бат-файл изменять описание расширения в разделе, то можно получить нужный результат.  


--------------------
user posted image
PM MAIL ICQ   Вверх
mihanik
Дата 2.6.2010, 19:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


-=Белый Медведь=-
****


Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

Репутация: 61
Всего: 109



Код

assoc /?


Добавлено через 1 минуту и 41 секунду
http://www.windowsfaq.ru/content/view/256/57/


--------------------
Программистами не рождаются, - это родовая травма...
user posted imageuser posted image
PM MAIL WWW ICQ   Вверх
Sanek123
Дата 3.6.2010, 00:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 201
Регистрация: 22.10.2008

Репутация: нет
Всего: нет



Спасибо! 

И раздел реестра HKEY_CLASSES_ROOT, и assoc /? есть помощь. Однако, нет ответа на поставленный вопрос или, может быть, я неверно сформулировал его. В примерах, приведенных вами есть расширение файла и тип файла (пример: *.mp3 = AudioFile) нужно прямо указать приложение.

Поясню. В ОС расширение файла соответствует типу файла и ОС в свою очередь опирается как раз таки на тип воспроизводимого файла, оставив тем самым выбор приложениям. Т.е. один и тот-же, скажем, *.mp3 может воспроизводить и Windows Media Player, и WinAmp, и Light Alloy и т.п., и в каждой из этих программ есть возможность выбора ассоциации файлов по расширению. Может статься так: в ОС указано, что мп3 файл должен запускаться как аудиофайл с помощью проигрывателя, но одному юзеру известно, какой программой он будет прочитан, точнее, той, в которой, указанны ассоциации. Или как пример: Установлен на ОС Alcohol 120, и соответственно файлы с расширением *.iso автоматом монтируются в Alcohol. Так? Конечно! Но до поры до времени пока я не поставил Daemon Tools и после установки нового приложения теже файлы *.iso монтируются уже в Daemon Tools. И ведь не во всех установщиках есть галочка "Ассоциировать файлы с данным приложением". Или, как пример №2: Установлены MS Office 2003 и MS Office 2007. Мне очень необходимо, чтоб документы MS Word запускались под управлением MS Word 2003, а документы MS Excel запускались под управлением MS Excel 2007, плюс по обе версии 2003-2007 и ворда и екселя должны присутствовать на машине. 

Вообщем, необходимо написать в бат файле функцию восстановления ассоциаций, или проще заново указать исполняющее приложение каждому расширению файла и плюс установить файлу иконку исполняющего его приложения.
--------------------
Вас разыскивают бойцы 139-го порта...
PM MAIL   Вверх
01MDM
Дата 3.6.2010, 09:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 273
Регистрация: 10.5.2008
Где: Default City

Репутация: 29
Всего: 29



Sanek123
Ассоциируем mp3 файл с программой MyPlayer:
Код

@echo off
setlocal

:try
for /f "tokens=2 delims==" %%i in ('assoc .mp3') do set "assoc=%%i"
if defined assoc (
    ftype MyPlayer_mp3="%ProgramFiles%\My Player\MyPlayer.exe" %%1 %%*
) else (
    assoc .mp3=MyPlayer_mp3
    goto:try
)

Если для расширения .mp3 не соответствует ни одна ассоциация, то устанавливается новая MyPlayer_mp3. На эту ассоциацию назначается команда открытия.

Если не нужен пакетный режим, который предпочтителен при установки нескольких ассоциаций за один раз, все это можно проделать прямо из консоли. Почитай:
Код

assoc /?
ftype /?

Или правкой реестра. Как уже говорили HKCR для всех пользователей. Для конкретного пользователя, имхо, ассоциацию лучше прописать в HKCU\Software\Classes


--------------------
Вопросы в личке останутся без ответов.
PM MAIL   Вверх
Sanek123
Дата 6.6.2010, 09:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 201
Регистрация: 22.10.2008

Репутация: нет
Всего: нет



Что-то не выходит...
--------------------
Вас разыскивают бойцы 139-го порта...
PM MAIL   Вверх
mihanik
Дата 6.6.2010, 13:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


-=Белый Медведь=-
****


Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

Репутация: 61
Всего: 109



Цитата(Sanek123 @  6.6.2010,  09:04 Найти цитируемый пост)
Что-то не выходит... 


Windows 7?
Попробуй от имени админа запускать скрипты...


Это сообщение отредактировал(а) mihanik - 6.6.2010, 13:27


--------------------
Программистами не рождаются, - это родовая травма...
user posted imageuser posted image
PM MAIL WWW ICQ   Вверх
Sanek123
Дата 7.6.2010, 09:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 201
Регистрация: 22.10.2008

Репутация: нет
Всего: нет



Цитата

Windows 7?
Попробуй от имени админа запускать скрипты...


Windows XP Pro SP3. Сижу под Админом.

Значения в реестре меняются, но на файлы это не оказывает никакого влияния. Может какойто другой раздел нужен или еще что?
--------------------
Вас разыскивают бойцы 139-го порта...
PM MAIL   Вверх
01MDM
Дата 7.6.2010, 22:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 273
Регистрация: 10.5.2008
Где: Default City

Репутация: 29
Всего: 29



Sanek123
Цитата

Что-то не выходит... 

Ошибочка, исправь строчку:
Код

for /f "tokens=2 delims==" %%i in ('"assoc .mp3 2>nul"') do set "assoc=%%i"


STDERR записывался в переменную %assoc%

Это сообщение отредактировал(а) 01MDM - 7.6.2010, 22:11


--------------------
Вопросы в личке останутся без ответов.
PM MAIL   Вверх
Sanek123
Дата 8.6.2010, 18:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 201
Регистрация: 22.10.2008

Репутация: нет
Всего: нет



Цитата

Ошибочка, исправь строчку:

Все равно не выходит. Значения в реестре меняются а ничего не происходит, то есть выглядит теперь так, скажем на примере мр3:
Воспроизводится с помощью windows media player. 
user posted image
запускаем скрипт...
открываем Свойства файла...
кнопка изменить...
user posted image
теперь по умолчанию стоит Media Player Classic... но нужно еще подтвердить изменения нажа Ок там и там. Или скрипт не работает или еще что-то мешает.


--------------------
Вас разыскивают бойцы 139-го порта...
PM MAIL   Вверх
01MDM
Дата 8.6.2010, 21:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 273
Регистрация: 10.5.2008
Где: Default City

Репутация: 29
Всего: 29



Sanek123, попробуй другой вариант, без проверки - просто перезапись значений на примере Spider Player:
Код

@echo off
assoc .mp3=Spider.mp3
ftype Spider.mp3="%ProgramFiles%\Spider Player\spider.exe" "%%1" %%*


Предыдущий вариант отработал на домашней тачке, на работе только один раз, затем ассоциация вновь изменилась на WMP (комп не в домене и вообще не в сети), разбираться времени не было.





--------------------
Вопросы в личке останутся без ответов.
PM MAIL   Вверх
Sanek123
Дата 11.6.2010, 14:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 201
Регистрация: 22.10.2008

Репутация: нет
Всего: нет



Эффект тот же что указан в посте от 8.6.2010, 18:08
--------------------
Вас разыскивают бойцы 139-го порта...
PM MAIL   Вверх
01MDM
Дата 12.6.2010, 11:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 273
Регистрация: 10.5.2008
Где: Default City

Репутация: 29
Всего: 29



Цитата

Эффект тот же что указан в посте от 8.6.2010, 18:08 

Тогда не знаю, у меня все работает.


--------------------
Вопросы в личке останутся без ответов.
PM MAIL   Вверх
LordPrizrak
Дата 28.1.2011, 16:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 13.4.2009

Репутация: нет
Всего: нет



А есть спобос что-бы установить ассоциацию через переменную окружения?
Было-бы неплохо таскать на флэшке своё привычное рабочее окружение, и воткнув её в комп и запустив батничек который выставит нужные переменные и запустит любимый файлменеджер. Тогда при старте ФМ он получит все переменные который установил батник, и все программы запущенные из него тоже будут иметь эти переменные.
Красиво: и систему не изменяет, и всё привычно....
Впринципе у меня так и есть: установлены все переменные которые добавляют в path пути на флэшку, указывают на предпочитаемый компилятор, изменяют список расширений которые можно опустить для запуска... Не хватает только переменных что-бы .py файлы открывались именно в Питоне, а не в блокноте и т.д....
В Линуксе это все-же проще...
PM MAIL   Вверх
01MDM
Дата 29.1.2011, 17:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 273
Регистрация: 10.5.2008
Где: Default City

Репутация: 29
Всего: 29



LordPrizrak

Цитата
А есть спобос что-бы установить ассоциацию через переменную окружения?

Нет, нельзя.
Цитата
батничек который выставит нужные переменные и запустит любимый файлменеджер

Может в самом ФМ есть настройки ассоциаций, как в FAR или MC?
Цитата

В Линуксе это все-же проще... 

Кранчбенга ( #! ) нет.


--------------------
Вопросы в личке останутся без ответов.
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Windows"
December
bartram
Akella

Запрещается!

1. Обсуждать взлом и делиться кряками

2. Способствовать созданию и распространению вирусов

  • Для бессмертных бородатых вопросов типа Win vs Nix есть специальный форум Религиозные Войны
  • Несанкционированная реклама на форуме запрещена
  • Пожалуйста, давайте своим темам осмысленный, информативный заголовок. Вопль "Помогите!" таковым не является.
  • Чем полнее и яснее Вы изложите проблему, тем быстрее мы её решим.
  • ВСЕГДА УКАЗЫВАЙТЕ ВЕРСИЮ ОС

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, December, bartram, Akella.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS Windows | Следующая тема »


 




[ Время генерации скрипта: 0.0975 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.