Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » примочка для ассоцирования файла имени, а не расширению

Модерирует : gyra, Maz

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2

Открыть новую тему     Написать ответ в эту тему

oshizelly



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Проблема вот какая. Как известно, Windows связывает (associate) понятие "тип файла" с расширением файла (то есть, цепочкой символов от конца полного имени файла до последней точки в имени). (В отличие от некоторых других OS, где система ориентируется на содержимое файлов.)
От типа файла, определенного системой, в свою очередь зависит:
1) какой прогой файл открывается по умолчанию;
2) с какой иконкой файл отображается во всех диалогах на базе Explorer.
 
Теперь собственно вопрос. Как сделать так, чтобы система при принятии решений, какой прогой файл открывать и с какой иконой отображать, смотрела не на расширение (или, по крайней мере, не только на расширение), а на другие элементы имени файла, заданные пользователем по шаблону в настройках. Например, по предпоследнему расширению файла (ДО последней точки). То есть, чтобы можно было задать, например, что файл
aaaaaaa.BAM.doc
открывался бы программой Trali-Vali.exe и отображался бы с иконкой C:\bam.ico, а файл
aaaaaaa.TARARAM.doc
открывался бы программой mustdie.exe и отображался бы с иконкой C:\tararam.ico.
NB!
Оба момента важны: и то, чем открывать, и то, какую икону показывать. Хотя, возможно, что для иконок и для ассоциирования проги можно использовать разные решения.  
 
Насколько я понимаю, собственными средствами Винды это никак не реализуется. Но, возможно, есть какая-то хитрая надстройка над Explorer...
Буду всем признателен за любые подсказки и идеи.

Всего записей: 6524 | Зарегистр. 18-09-2004 | Отправлено: 14:58 04-02-2005 | Исправлено: oshizelly, 15:29 04-02-2005
EZH



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Думаю можно накатать .bat файл (или прогу написать), и ассоциировать все .doc на открытие этим батником. А прогой/батом анализировать что до doc - и соответственно исполнять...

Всего записей: 1738 | Зарегистр. 02-09-2004 | Отправлено: 15:14 04-02-2005
oshizelly



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
EZH
Не очень понятно, как ты представляешь себе реализацию этой идеи. И в любом случае это никак не решает проблемы с ассоциированием иконок.

Всего записей: 6524 | Зарегистр. 18-09-2004 | Отправлено: 23:29 04-02-2005
bredonosec



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
И в любом случае это никак не решает проблемы с ассоциированием иконок.
- А вариант с использованием шорткатов не подойдет? То есть, в интересующей папке будут лежать не сами файлы, а шорткаты к ним. А шорткаты можно любой иконкой обозначить.  
 Правда насчет обработки прогой.. Хотя, опять же, можно назначать их не на сам файл, а на прогу, которой в параметрах командной строки писать, какой файл открывать.

Всего записей: 16257 | Зарегистр. 13-02-2003 | Отправлено: 03:11 05-02-2005
GeMir



Ich finde dich
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
oshizelly
IMHO проще на Mac OS перейти...

Всего записей: 10296 | Зарегистр. 15-02-2004 | Отправлено: 03:26 05-02-2005
oshizelly



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bredonosec

Цитата:
А вариант с использованием шорткатов не подойдет? То есть, в интересующей папке будут лежать не сами файлы, а шорткаты к ним.

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

Всего записей: 6524 | Зарегистр. 18-09-2004 | Отправлено: 16:41 05-02-2005 | Исправлено: oshizelly, 17:15 06-02-2005
bredonosec



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
IMHO все это реализовать на программном уровне совсем не сложно.
Реализуй. Если правильно тебя понял, - как навеску к файл-менеджеру. Мы токмо спасибо скажем (если придумаем, для чего юзать)  
GeMir

Цитата:
IMHO проще на Mac OS перейти...
//офф//Где-то видел высказывание, что заместо того, чтоб подсказать настройку софтинки тебе предложат сменить версию проги, язык в системе, ОСь, железо, страну проживания, половую ориентацию, но не то, о чем спросил.

Всего записей: 16257 | Зарегистр. 13-02-2003 | Отправлено: 05:42 06-02-2005
oshizelly



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Мы токмо спасибо скажем (если придумаем, для чего юзать)

Поскольку в студии имеет место непонимание, для чего нужен такой изврат, чтобы икону ассоциировать не с расширением, а с другим элементом имени файла, то привожу элементарный пример.  
У юзера имеются свои постоянные как-бы-типы (категории) файлов. Например у бухгалтера следующие "типы":
- счета
- договоры
- платежки.
Каждый такой "тип" обозначается собственным дополнительным расширением в имени файла. Все документы, естественно, в разных форматах и с разными стандартными расширениями (.doc, .htm, rtf, (отсканированные -.tif, .jpg, .pdf и пр.).  
Например, все счета - "inv" (от "invoice"): "счет за тушите свет.inv.doc"; все договоры - "cnt" (от "contract"): "договор на поставку соленых огурцов.cnt.rtf", все платежки - "pay" (от "payment"): "платежка за бордельные услуги.pay.tif" и т.д. и т.п.
 
То есть, имеются два критерия деления файлов на типы: стандартное - по бинарной структуре файла и, соответственно, ассоциированной программе (DOC - документ Word - MS Word, HTM - документ HTML - Opera, TIF - графический файл - ACDSee, и пр.) и пользовательское - по содержимому документа (inv, cnt, pay и т.д.)
 
Ну вот, теперь надо добиться такого идеала.  Юзер открывает директорий - и единым орлиным взором сразу видит, сколько чего у него там. Особенно удобно, если имя файла целиком не умещается на экране, например, на экране видно: "Главспецстройснаббумлесновосибирскглавупр...".  Юзер знает, это наш деловой партнер, но какого типа документ. Стандартная иконка, ассоциированная системой на ".pdf, показывет икону Acrobat'а и ничего не говорит о содержании документа. А юзеру наплевать, PDF это или TIFF, ему важно сразу понимать, что содержится в этом документе, то ли это счет, то ли копия нашей платежки. А если икона ассоциирована по маске *inv*, то сразу ясно, что это инвойс.
Вот для этого и надо, чтобы икона файла в Explorer и файловом манагере ассоциировать по маске:  
*inv* - счет (изображени счЕтов)
*cnt* - договор (изображение кукиша)
и пр. и и пр.
 
Возможно, все это бред и та же задача может быть решена гораздо более простым способом. Тогда буду безмерно благодарен за подсказку такого более простого решения.
 
З.Ы.
В какой-то (очень небольшой) степени что-то очень отдаленное имеется в Total Commander (раскрашивание имен файлов по произвольной маске, даже с поддержкой регулярных выражений) - но это, конечно, совсем не то, что надо.
Аналогично и с ассоциированной программой, но этого я объяснять не буду, а то уж и так целый роман накатал. Но если кому интересно, то могу и это объяснить.

Всего записей: 6524 | Зарегистр. 18-09-2004 | Отправлено: 16:00 06-02-2005 | Исправлено: oshizelly, 17:23 06-02-2005
bredonosec



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
и та же задача может быть решена гораздо более простым способом.  
- Весьма вероятно. Например:
Изначальное раскидывание доков по папкам со значащими названиями.  
D:/Docs/ /Payments/
              /Invoice/
              /Contracts/
              /Personal/
Причем, завести порядок, при котором они изначально попадают в эти папки, а не по мере надобности выискиваются в общей мусорке. То есть, настроить прием с почты так, чтоб по маске бросало куда следует. Или по ситуации конкретной.  
 
 ЗЫ. А на папки можно и навесить кукишы-черепки, сам фон (если експлорером бухи будут ходить) можно кукишем заделать

Всего записей: 16257 | Зарегистр. 13-02-2003 | Отправлено: 12:22 07-02-2005
vito333



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
oshizelly
я тут разбирался как-то с ассоциированием, так вот. Винда иконки может отображать только в зависимости от расширения. Так что переделать это можно только в каком-либо файл-браузере - файл-менеджере, но не в системе.
Второе. Анализировать дополнительные ключевые строки в имени-расширении файла несложно, но только своей прогой.
Так что единственный вариант по запуску - ассоциировать с определенным типом свою программу, она при запуске файла с этим расширением проанализирует и соответственно запустит то что надо. Ну про мелочи типа мониторинга ассоциации и пр. я не говорю
 
Добавлено:
есть кстати утилиты, которые при клике на файле выдают список программ, которыми можно открыть-запустить кликнутый файл. Названий не помню, но есть пара точно.

Всего записей: 3322 | Зарегистр. 13-05-2002 | Отправлено: 14:26 07-02-2005
oshizelly



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bredonosec

Цитата:
Изначальное раскидывание доков по папкам со значащими названиями. .... настроить прием с почты так, чтоб по маске бросало куда следует.

Нет, это не есть корректное решение.  Надо, чтобы все решалось на уровне глобальных настроек системы, а не зависело от аккуратности пользователя при сортировке. И с чего ты решил, что основной источник постуления документов - через почту? И на дискетах приносят, и сами пишут, и сканируют...
Кроме того, предложенная тобой организация документов неудобна пользователю. Скажем, документы, относящиеся к одной сделке, должны бы быть в одном директории, а не в разных.
 
vito333

Цитата:
Винда иконки может отображать только в зависимости от расширения. Так что переделать это можно только в каком-либо файл-браузере - файл-менеджере, но не в системе.

Жаль.
Может, тогда хоть плагин какой-нибудь под Total Commander? Я не очень представляю, насколько это сложно реализовать.

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

Ну хоть что-нибудь про них помнишь? Какое-нибудь ключевое слово, или имя производителя, или хоть где видел?

Всего записей: 6524 | Зарегистр. 18-09-2004 | Отправлено: 19:36 07-02-2005 | Исправлено: oshizelly, 19:38 07-02-2005
igor_andreev

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
С иконками действительно врядли что получится.
А открытие файлов можно средствами самой винды реализовать. Например ваяешь скрипт типа

Код:
 
If WScript.Arguments.Count = 1 Then
' f - файл, переданный в качестве параметра скрипту
 f = WScript.Arguments.Item(0)
 Set fso = CreateObject("Scripting.FileSystemObject")
 Set ws = WScript.CreateObject("WScript.Shell")
' читаем четыре последние буквы в имени файла и расширение
  prefix = Right( fso.GetBaseName(f), 4) & "." & fso.GetExtensionName(f)
' рабочая папка - та, в которой находится файл, переданный как параметр
  ws.CurrentDirectory=fso.GetParentFolderName(f)
 
 Select Case prefix
  Case ".int.doc"  ' .int.doc открываем wordpad-ом
   ws.Run "wordpad.exe " & Chr(34) & f & Chr(34), 1, false
  Case ".cnt.doc"  ' .cnt.doc открываем Word-ом
   ws.Run "WINWORD.EXE " & Chr(34) & f & Chr(34), 1, false
' Case ".еще_какие-то_три_буквы.doc"
'  ws.Run "еще_какое-то.exe " & f, 1, false
  Case Else ' все остальные *.doc открываем Word-ом
   ws.Run "WINWORD.EXE " & Chr(34) & f & Chr(34), 1, false
 End Select
 
End If
Set fso = Nothing
Set ws = Nothing
WScript.Quit
 

обзываешь его openfile.vbs и в свойствах папки - типы файлов *.doc пишешь открывать при помощи
WScript.exe "C:\Windows\openfile.vbs" "%1"
И таким макаром можно написать скрипт килобайт на 100 , учитывающий все возможные варианты имен файлов-расширений, и чтоб настройки брал из ini-файла и *.wsc-компонент еще написать до кучи. Только никто этим не занимается, потому как  нафих не надо. Мне ближе как-то мнение bredonosec, все должно лежать на своем месте.

Цитата:
Скажем, документы, относящиеся к одной сделке, должны бы быть в одном директории, а не в разных

Вот именно. Легче создать на каждое предприятие свою папку( ДРСУ, Снабсбыт, Лесхоз и т.д.) и в каждой свои папки(Счета, Платежки, Контракты и т.д). Ну для удобства можно юзерам в меню SendTo накидать ярлыков на эти папки, пусть раскладывают куда надо, им самим же легче ориентироваться будет в своих завалах документов. "Дойче орднунг" однако.

Всего записей: 1705 | Зарегистр. 08-12-2004 | Отправлено: 21:57 07-02-2005 | Исправлено: igor_andreev, 22:34 07-02-2005
artfavourites



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
oshizelly

Цитата:
Как сделать так, чтобы система при принятии решений, какой прогой файл открывать и с какой иконой отображать, смотрела не на расширение

 
оригинальное расширение сохранять обязательно?
под aaaaa.TARARAM.doc - настроить никак не получится
а вот под aaaaa.doc.TARARAM - сколько угодно
 
можно еще так между прочим пользователям и обьяснить, что эти файлы открываются лишь на эксклюзивных именных редакциях офисных программ, и в каждый файл встроен радиомаячек, который позволяет его найти в случае похищения
 
Добавлено:
Кстати - попробуйте сохранить что-нибудь из Word в HTML формат,
и убедитесь, что Explorer его от обычного HTML отличает.

Всего записей: 681 | Зарегистр. 23-12-2003 | Отправлено: 01:03 08-02-2005 | Исправлено: artfavourites, 01:14 08-02-2005
guntis

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
oshizelly

Цитата:
Может, тогда хоть плагин какой-нибудь под Total Commander

 
Как я понял, важно то, чтобы с первого взгляда было понятно, к какой пользовательской категорий относится файл. Можно такой вариант - это не совсем то, что требовалось (иконки не меняются), но имхо даже удобнее:  
 
С помощью content плагинов, в TC можно отображать и то, что содержится в полях Properties --> Summary. То есть, просто пишешь, например, в поле Summary --> Subject (или в другом) эти inv, cnt или pay, а TC показывает не только колонки name, ext, size, но и subject (это все просто настраивается)  - и с первого взгляда видно, из какой категорий файл. Кликнув на заглавие колонки, можно сразу и рассортировать.
Кстати, на макинтошах такая фича была с самого начала.
 
 
 

Всего записей: 880 | Зарегистр. 02-01-2003 | Отправлено: 01:24 08-02-2005
oshizelly



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
igor_andreev

Цитата:
А открытие файлов можно средствами самой винды реализовать. Например ваяешь скрипт типа...  

Спасибо, так наверное, можно. Только сложно все это неимоверно. Душа просит простых и красивых решений. Или простую и красивую готовую утилиту, которую кто-то уже написал, а мне осталось только настроить.
 
artfavourites

Цитата:
Оригинальное расширение сохранять обязательно?  
под aaaaa.TARARAM.doc - настроить никак не получится  
а вот под aaaaa.doc.TARARAM - сколько угодно

Оригинальное расширение сохранять не обязательно. НО... Как ты себе это представляешь? Файлы одной пользовательской категории могут быть разными по бинарной структуре, то есть, например, инвойс может быть и документом PDF, и TIFF, и HTML, и MS DOC. Если ассоциируем расширение .TARARAM, скажем, на Acrobat Reader, а это окажется документ MS Word, получится нехорошо.
 
gunits

Цитата:
С помощью content плагинов, в TC можно отображать и то, что содержится в полях Properties --> Summary.

Опять не то Далеко не у всех типов файлов есть поля Properties, это, в основном, мелкосфтовые проги, ну и еще Adobe. Кроме того, невозможно заставить пользователей корректно заполнять эти поля. Потому я и пытаюсь все увязать именно с именем файла, которое есть всегда и у всех.

Всего записей: 6524 | Зарегистр. 18-09-2004 | Отправлено: 14:48 08-02-2005 | Исправлено: oshizelly, 14:53 08-02-2005
royt

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всё, что запрашивалось в заголовке этого топика, вполне реализуемо программно, с некоторыми оговорками. А вот что-то готовое посоветовать не могу, т.к. не попадалось (иначе бы сам использовал).
 
offtopic: сам безуспешно ищу редактор, который бы позволял удобно редактировать ассоциации Explorer-а и давал над ними полный контроль - на даже такого нету (штатный редактор со списком "File Types" позволяет редактировать далеко не всё), в итоге приходится лазить ручками по реестру.
 
Если интересует программная реализация - искать по ключевым словам "shell extension", "IconHandler". В двух словах - пишется dll-ка, в которой реализуется подобие COM-объекта, эта dll-ка регистрируется в реестре и всё... Именно так работают утилитки-расширения оболочки, например, показывающие для mp3 файлов иконки с разным изображением в зависимости от битрейта (пример - MP3ext: http://www.mutschler.de/mp3ext/, доступны исходники).

Всего записей: 319 | Зарегистр. 18-08-2004 | Отправлено: 09:32 16-03-2005
los2



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
royt,

Цитата:
сам безуспешно ищу редактор, который бы позволял удобно редактировать ассоциации Explorer-а и давал над ними полный контроль - на даже такого нету (штатный редактор со списком "File Types" позволяет редактировать далеко не всё), в итоге приходится лазить ручками по реестру

эту программу смотрел?
_http://www.spearit.com/about_AssociateThis.html

Всего записей: 1845 | Зарегистр. 20-11-2001 | Отправлено: 13:19 16-03-2005
vito333



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
royt
хм, интересно, спасибо за ссылку

Всего записей: 3322 | Зарегистр. 13-05-2002 | Отправлено: 14:13 16-03-2005
royt

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
los2
Спасибо за ссылку, ищется лекарство.
 
Интересно только, умеет ли оно редактировать "EditFlags" (FTA_OpenIsSafe, FTA_AlwaysUnsafe, FTA_NoRecentDocs и др.), как например "File Association Manager" (к текущей версии последнего как раз лекарство так и не нашел).

Всего записей: 319 | Зарегистр. 18-08-2004 | Отправлено: 08:29 17-03-2005
bredonosec



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
royt

Цитата:
ищется лекарство.  
- и сколько еще раз повторить надо, чтоб наконец стали искать варез в варезнике, а не тут?  

Всего записей: 16257 | Зарегистр. 13-02-2003 | Отправлено: 08:56 17-03-2005
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2

Компьютерный форум Ru.Board » Компьютеры » Программы » примочка для ассоцирования файла имени, а не расширению


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru