Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 2003.03.13;
Скачать: [xml.tar.bz2];

Вниз

shell Ext.   Найти похожие ветки 

 
BLooDMaN   (2003-01-13 16:42) [0]

Люди, кто - нибудь подскажите как присваивать иконки файлам в зависимости от их СОДЕРЖАНИЯ( а не ТИПА) ?? Или компонент для этого (ShellPlus не предлагать ( если ломаный , то предлагать :) ))
Ну или хотябы доки по ActiveX,COM Плиз очень нужно!


 
BLooDMaN   (2003-01-13 17:15) [1]

Что такой сложный вопрос что-ли??? :((


 
Palladin   (2003-01-13 18:37) [2]

в какой ОС ты видел такую фичу? что бы по содержимому файла "проводник" определял его сущность?


 
neXt   (2003-01-13 18:41) [3]

возможны только частные решения, для PE- файлов классно решено сдесь:
http://www.rsdn.ru/files/printv.asp?Progs/dllinfo.xml


 
neXt   (2003-01-13 18:42) [4]

ну там только, правда на c++ но если "очень нужно", то разберёшься..


 
Palladin   (2003-01-13 18:51) [5]

или скажем по другому.
есть у тебя файл с таким содержимым

Наименование;Цена
Шкатулка;15
Ложка;12


с виду конечно это текстовый, но в тоже время его прекрасно понимает Excel как CSV (причем разделителем полей могут быть совсем и не ";") и какую иконку ты предлагаешь этому файлу присвоить?
что бы более достоверно определить принадлежность файла к какому нибудь конкретному типу приложения необходимо по крайней мере что бы каждое приложение при регистрации в системе предоставляло на экспорт функцию определения своего типа файла.
Что конечно же полная чушь...


 
Palladin   (2003-01-13 18:55) [6]

Я так понял конечно что речь здесь идет о файлах данных а не об исполняемых и библиотеках.


 
Моджахед   (2003-01-13 20:16) [7]

Да нет же, существуют вполне легальные способы для ЛЮБОГО типа файла (расширения) установить свои callback-функции для решения подобных вещей. В частности, так реализуются thumbnails (предосмотр) для AI, PhotoShop и иже с ними. Копать нужно в направлении InProcServer32.

Все нормально (как ни странно), документировано дажа в Win32 SDK.
Ничего не нужно изобретать.


 
Моджахед   (2003-01-13 20:18) [8]

2 Palladin
> в какой ОС ты видел такую фичу? что бы по содержимому файла "проводник" определял его сущность?

Windows, MacOs. Юниксы не знаю


 
Palladin   (2003-01-13 20:51) [9]

Вы хотите сказать что изменив у файла Документ.doc расширение на Документ.txt иконка его не сменится на блокнотовскую?

по поводу Win32
вся привязка файлов идет через их расширение. CLSID и etc все прописано в реестре и всегда опирается на расширение.

>Моджахед
речь идет о бинарном содержимом файла а не о его типе.
Что бы windows определить какой это файл и вообще какую callback функцию, и dll ее содержащую, для него вызвать он берет расширение файла (не содержимое).

по поводу thumbnails
возьмем файл фотошопа mypic.psd изменяем режим просмотра содержимого каталога на Thumbnail, мы видим естественно предпросмотр рисунка. ОК. Меняем расширение mypic.psd на mypic.txt и что мы видим?
вот гляньте сами....


 
Palladin   (2003-01-13 20:57) [10]

и после этого вы смеете утверждать что windows способен определить принадлежность (тип, способ открытия, способ предпросмотра и т.д.) файла по его бинарному содержимому?


 
Моджахед   (2003-01-13 21:27) [11]

Я, наверное, однобоко истолковал корневой вопрос. И поспешил с ответом.

Действительно, виндюки привязываются к расширению. А на него потом можно понавешивать сколько угодно чего. Не знаю, наш кровавый мэн пропал, а я так подумал, что ему нужно для СВОЕЙ программы, рожающей файлы ОДНОГО И ТОГО ЖЕ расширения сделать так, чтобы, в зависимости от содержимиого, файлы ОДНОГО И ТОГО ЖЕ расширения показывали некие информативные иконки. Я купился всего лишь на то, что сам недавно делал такой кунштюк для своей программки просмотра файлов с геодезической информацией. Там просто нужно было предосмотр делать на иконках для удобства.
Допускаю, что я ошибся, и человек, задавший вопрос, мыслит глобально :).
Кстати на * тоже никто не мешает (кроме Аллаха) повесить шелл екст с InProcServer. Так что принципиально задача решается и на Винде.

В любом случае, на Маке это делалось проще, и "расширение" тут вообще не играло никакой роли. Так что Palladin 1:1
;)


 
Palladin   (2003-01-13 21:34) [12]

ok :) 1:1
про * чего то мне в голову не пришло....
как нибудь надо бы поэкспериментировать :)


 
Моджахед   (2003-01-13 21:43) [13]

Тоже не пробовал :)
Идея, конечно, безумная. Ибо торомозить все начнет ужасно. Для каждого файла -- будет вызываться написанная на Делфи функция анализа 8-\


 
Набережных С.   (2003-01-13 22:16) [14]

Пишешь COM-объект в DLL, реализующий IPersistFile и IExtractIcon. Регистрируешь его в реестре в подключе \ShellEx\IconHandler ключа твоего класса файлов. Собственно, все. Подробности в MSDN


 
Моджахед   (2003-01-13 22:24) [15]

2 Набережных С.
Про это все уже было сказано. Кстати, MSDN трогать даже не нужно достаточно Win32 SDK reference


 
[lamer]Barmaglot   (2003-01-14 17:19) [16]

Извините ламера, может я и не прав. Но для файлов графики (Bmp, Jpg и т.д.) первые два байта в файле определяют тип, если исходить из этого можно узнать графический файл даже если у него расширение txt. Вероятнее всего для других файлов тоже есть байты признака. Or i"m wrong?


 
Poirot   (2003-01-15 00:01) [17]

мне лень литать, а IExtractIcon и IPersistFile предлагали юзать... Или я вопрос не понял... типа програмерски или тулу готовую надо???


 
[lamer]Barmaglot   (2003-01-16 15:26) [18]

Просмотрел форматы некоторых файлов и вот что получилось:
Первые 2-3 байта в файле определяют его тип

49, 49 или 4d, 4d - TIFF
ff, d8 - JPEG
42, 4d - BMP
47, 49, 46 - GIF
4d, 5a - EXE, DLL

Кто нибудь из профессионалов отзовитесь. Действительно ли существует признак формата в файле или это у меня глюки?


 
bloodman   (2003-01-16 16:23) [19]

ЛЮДИ я вернулся ! Я несколько раз заходил но ответов не было :(

Моджахед (13.01.03 21:27)


>Не знаю, наш кровавый мэн пропал, а я так подумал, что ему нужно >для СВОЕЙ программы, рожающей файлы ОДНОГО И ТОГО ЖЕ расширения >сделать так, чтобы, в зависимости от содержимиого, файлы ОДНОГО >И ТОГО ЖЕ расширения показывали некие информативные иконки. Я >купился всего лишь на то, что сам недавно делал такой кунштюк >для своей программки просмотра файлов с геодезической >информацией. Там просто нужно было предосмотр делать на иконках >для удобства.
Допускаю, что я ошибся, и человек, задавший вопрос, мыслит глобально :).
Кстати на * тоже никто не мешает (кроме Аллаха) повесить шелл екст с InProcServer. Так что принципиально задача решается и на Винде.

Ты не ошибся именно это мне и нужно!! Плиз расскажи как это организовать!!!!!


 
BLooDMaN   (2003-01-16 18:05) [20]

Ну вот опять никто не отвечает :(( будим ждать ...


 
BLooDMaN   (2003-01-17 17:57) [21]

Мож кто-нибудь все таки знает...


 
Моджахед   (2003-01-18 00:17) [22]

2 BLooDMaN ©
Уже ведь намекнули, где копать. Чтобы самому запомнить навсегда, прочитай про InProcServer32 в SDK, посмотри глазами как это сделано другими программами в реестре, напр. Photoshop.
Или, вдаваясь в меньшее количество деталей, сделай как Набережных С. (13.01.03 22:16) посоветовал.
С ув.


 
Моджахед   (2003-01-18 00:22) [23]

Кстати, ты пропустил хорошую ссылку, которую тебе кинули. Повторю:

http://www.rsdn.ru/files/printv.asp?Progs/dllinfo.xml
и от нее парочка веток отходит. Очень дельно написано про вещи, тебя заинтересовавщие. Но для С++. Повторю, текст неплохой и дельный.


 
BLooDMaN   (2003-01-18 02:16) [24]

Ща посмотрю большое спасибо . Но я полный 0 в COM технологиях поэтому если есть у тебя хоть какой нибуть кусок кода на ДЕЛЬФИ плиизз кинь мне . Ну а если нет так нет...


 
Palladin   (2003-01-18 02:46) [25]

>[lamer]Barmaglot
Картинки это очень частный случай.
Да. У многих широко употребляемых (и еще более многих не так широко известных) форматов файлов, существовует заголовок файла, то есть некая структурная информация в начале файла о нем самом. Это как правило хорошего тона :). Естественно встречаются файлы и без заголовка. Но данный факт поставленой "кровавым" задаче ничего не дает.


 
Palladin   (2003-01-18 02:51) [26]

По крайне мере в том виде как он ее определил в начале...


 
BLooDMaN   (2003-01-18 23:25) [27]

Так может кто - нибуть код дать?? Хоть ответе тогда ( Моджахед )...


 
BLooDMaN   (2003-01-19 23:06) [28]

Алло...



Страницы: 1 вся ветка

Форум: "Система";
Текущий архив: 2003.03.13;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.51 MB
Время: 0.009 c
14-39463
Colt
2003-02-25 09:32
2003.03.13
Оптимальный инсталятор


6-39459
ofp
2003-01-21 03:02
2003.03.13
Как менять MAC адрес программным путем ?!


8-39418
Foton
2002-11-30 10:31
2003.03.13
Построение графиков


3-39195
vdv
2003-02-20 13:01
2003.03.13
Ошибка при работе на Win 2000 server


6-39444
manner
2003-01-24 19:51
2003.03.13
Как запустить из Delphi IE с определенным URL?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский