расширение для Explorer
От: МДС  
Дата: 09.01.03 11:07
Оценка:
Здравствуйте.

Когда то я использовал программу, точно не помню её названия... — что то вроде Magic Zip.
Она делала следующее: все имеющиеся архивы zip представляла как каталоги,
и файлами в архиве можно было пользоваться, как обычными.
Как сделать тоже самое?
Тоесть как делать такие "виртуальные" какалоги и определять их содержимое?
В сторону Windows Shell копать надо...?
Re: расширение для Explorer
От: cully  
Дата: 09.01.03 11:34
Оценка:
Прога у тя была ZipMagic, а копать надо в сторону драйверов, т.к. при открытии файлов из любой проги конструкция вида "c:\myzip.zip\somedir\somefile.ext" работала, следовательно ZipMagic ставит сервис.
Re: расширение для Explorer
От: vasketsov Россия http://ntprog.by.ru
Дата: 09.01.03 11:56
Оценка:
Здравствуйте, МДС, Вы писали:

МДС>Она делала следующее: все имеющиеся архивы zip представляла как каталоги,

МДС>и файлами в архиве можно было пользоваться, как обычными.

Создание своего Driver-а, который будет осуществлять разбор имен — это для одного Explorer-а слишком навороченно. Это и в принципе слишком навороченно, а для сабжевой цели — еще и глупо.
Делается это расширением оболочки. XP, кстати, это именно так и делает. Кстати, ее COM-объект для этого вполне можно попытаться зарегистрировать на машине, пробовал?

Подсказка по тому, как получить момент входа в архив.
Устанавливается для типа файла .zip команда по умолчанию Enter Archive и обработчик контекстного меню этой команды. В случае двойного клика он вызываться не будет, но можно его заставить вызываться, для этого в параметры этого объекта в реестре надо добавить специальный параметр MayChangeDefaultMenu.

Короче, смотри тут

http://search.microsoft.com/gomsuri.asp?n=3&c=rp_Results&siteid=us/dev&target=http://msdn.microsoft.com/library/en-us/shellcc/platform/Shell/programmersguide/shell_int/shell_int_extending/extensionhandlers/contextmenuhandlers.asp

и тут

http://search.microsoft.com/gomsuri.asp?n=5&c=rp_Results&siteid=us/dev&target=http://msdn.microsoft.com/library/en-us/shellcc/platform/shell/programmersguide/shell_int/shell_int_extending/extensionhandlers/shell_ext.asp

и примеры в SDK.
Васкецов Сергей
http://registry.km.ru
Re[2]: расширение для Explorer
От: old->*Plutonia_Experiment() Беларусь http://blogs.rsdn.org/ikemefula
Дата: 09.01.03 12:58
Оценка:
Здравствуйте, vasketsov, Вы писали:

Хорошая идея, но сразу видно, что ты эту прогу не юзал.
Она делает реальные каталоги, которые видны, именно как каталоги.
И видны из всех программ !!! Для одного фолдера это можно выключить и включить заново.

Это делается скорее всего перехватом API. Щас поставлю его, и скажу. Никаких shell. Эти каталоги можно даже расшаривать по сети


Все поскипано.
Re[3]: расширение для Explorer
От: vasketsov Россия http://ntprog.by.ru
Дата: 09.01.03 13:12
Оценка:
Здравствуйте, old->*Plutonia_Experiment(), Вы писали:

O>Хорошая идея, но сразу видно, что ты эту прогу не юзал.

А я про эту прогу и не писал, а только по сабжу.
Васкецов Сергей
http://registry.km.ru
Re[3]: расширение для Explorer
От: МДС  
Дата: 09.01.03 13:19
Оценка:
Здравствуйте, old->*Plutonia_Experiment(), Вы писали:

O>Хорошая идея, но сразу видно, что ты эту прогу не юзал.

O>Она делает реальные каталоги, которые видны, именно как каталоги.
O>И видны из всех программ !!! Для одного фолдера это можно выключить и включить заново.
Я как раз это и имел введу. Меня просто не правильно поняли
Только помоему каталоги она не создаёт...
Ну даже если создаёт, то файлы из архива она туда точно не копирует
Я вот и хотел узнать как это реализовано, что в каталоге отображаются файлы,
которых как бы там и нет...


O>Это делается скорее всего перехватом API. Щас поставлю его, и скажу. Никаких shell. Эти каталоги можно даже расшаривать по сети
Re[3]: расширение для Explorer
От: vasketsov Россия http://ntprog.by.ru
Дата: 09.01.03 13:21
Оценка:
Здравствуйте, old->*Plutonia_Experiment(), Вы писали:

O>Здравствуйте, vasketsov, Вы писали:


O>Это делается скорее всего перехватом API. Щас поставлю его, и скажу. Никаких shell. Эти каталоги можно даже расшаривать по сети

Тогда скорее всего это драйвер (а никак уж не служба, если она имелась в виду когда писалось "сервис" выше), в нем и происходит разбор имени.
Васкецов Сергей
http://registry.km.ru
Re: расширение для Explorer
От: Valerio Россия linkedin.com/in/boronin
Дата: 09.01.03 13:51
Оценка: 14 (2)
авторитетно подтверждаю, это драйвер
file system filter driver
активный, т.е. не пассивный а-ля filemon
и так как этот продукт появился очень давно и не умер, вылизан прилично, то
кое-кем из авторитетных драйверописателей считается образцом для аналогичных
вещей, в нем задействованы (успешно!) практически все возможности для такого
рода продукта
суть проста — перехват File I/O к определенным файлам (.zip) и активная
фильтрация всех запросов сюда, в т.ч. выстраивание при обработке запросов
листинга "виртуальной" директории с содержимым архива и доступ к архиву при
доступе к этим файлам из виртуальной диры, т.е. разжатие на лету в кэш (Cc
имеется ввиду), а на диске я так понимаю все лежит в виде реальных
архивов...
красиво, короче, действительно крутой драйвер.
[Sorry, skipped]
O>> Это делается скорее всего перехватом API. Щас поставлю его, и скажу.
O>> Никаких shell. Эти каталоги можно даже расшаривать по сети
v> Тогда скорее всего это драйвер (а никак уж не служба, если она
v> имелась в виду когда писалось "сервис" выше), в нем и происходит
v> разбор имени.
Posted via RSDN NNTP Server 1.4.1
Valery A. Boronin, RSDN Team, linkedin.com\in\boronin
R&D Mgmt & Security. AppSec & SDL. Data Protection and Systems Programming. FDE, DLP, Incident Management. Windows Filesystems and Drivers.
Re: расширение для Explorer
От: Tom Россия http://www.RSDN.ru
Дата: 12.01.03 12:45
Оценка:
IShellFolder
Народная мудрось
всем все никому ничего(с).
Re[2]: расширение для Explorer
От: Valerio Россия linkedin.com/in/boronin
Дата: 12.01.03 13:20
Оценка:
Здравствуйте, Tom, Вы писали:

Tom>IShellFolder


НЕТ! Этого не достаточно, если неохота работать только в эксплорере с этим делом (как сейчас в ХР с поддержкой zip архивов это сделано)

нужен драйвер

то, как и что он должен делать я коротко набросал по ветке тут
http://www.rsdn.ru/forum/Message.aspx?mid=168489&only=1
Автор: Valerio
Дата: 09.01.03
... << RSDN@Home 1.0 beta 4 >>
Valery A. Boronin, RSDN Team, linkedin.com\in\boronin
R&D Mgmt & Security. AppSec & SDL. Data Protection and Systems Programming. FDE, DLP, Incident Management. Windows Filesystems and Drivers.
Re[3]: расширение для Explorer
От: adb Россия  
Дата: 12.01.03 18:03
Оценка:
V>НЕТ! Этого не достаточно, если неохота работать только в эксплорере с этим делом (как сейчас в ХР с поддержкой zip архивов это сделано)

V>нужен драйвер


А исходники подобных драйверов где-нибудь можно посмотреть? А то мне как раз нечто подобное нужно реализовать.
Re[4]: расширение для Explorer
От: Valerio Россия linkedin.com/in/boronin
Дата: 13.01.03 09:09
Оценка:
adb>А исходники подобных драйверов где-нибудь можно посмотреть? А то мне как раз нечто подобное нужно реализовать.

подобные исходники (даже попроще, вчера интересовался в OSR по работе) оцениваются в 300-500К и не рублей отнюдь

но кое-что если залезешь в NTFSD list на том же www.osr.com найдешь, в т.в. и ссылки на open-source или сворованные...
... << RSDN@Home 1.0 beta 4 >> silent
Valery A. Boronin, RSDN Team, linkedin.com\in\boronin
R&D Mgmt & Security. AppSec & SDL. Data Protection and Systems Programming. FDE, DLP, Incident Management. Windows Filesystems and Drivers.
Re[2]: расширение для Explorer
От: МДС  
Дата: 17.01.03 10:47
Оценка:
V>авторитетно подтверждаю, это драйвер
V>file system filter driver
V>активный, т.е. не пассивный а-ля filemon
V>и так как этот продукт появился очень давно и не умер, вылизан прилично, то
V>кое-кем из авторитетных драйверописателей считается образцом для аналогичных
V>вещей, в нем задействованы (успешно!) практически все возможности для такого
V>рода продукта
V>суть проста — перехват File I/O к определенным файлам (.zip) и активная
V>фильтрация всех запросов сюда, в т.ч. выстраивание при обработке запросов
V>листинга "виртуальной" директории с содержимым архива и доступ к архиву при
V>доступе к этим файлам из виртуальной диры, т.е. разжатие на лету в кэш (Cc
V>имеется ввиду), а на диске я так понимаю все лежит в виде реальных
V>архивов...
V>красиво, короче, действительно крутой драйвер.
V>[Sorry, skipped]
O>>> Это делается скорее всего перехватом API. Щас поставлю его, и скажу.
O>>> Никаких shell. Эти каталоги можно даже расшаривать по сети
v>> Тогда скорее всего это драйвер (а никак уж не служба, если она
v>> имелась в виду когда писалось "сервис" выше), в нем и происходит
v>> разбор имени.

Помоему это всё-таки можно без драйвера сделать.
Я вот тут компонент нашёл:

http://www.shellplus.com/examples/namespace-extension-example.html
Re[3]: расширение для Explorer
От: Valerio Россия linkedin.com/in/boronin
Дата: 17.01.03 11:00
Оценка: 8 (1) -1
субж без драйвера конечно можно, но вот сделать так, чтобы zip архив был доступен в т.ч. и DOS программам и мог быть расшарен по сети в виде папки с файлами и т.п. — такого никогда не выйдет. Просто потому что эти вещи (их поддержка) реализуются на глубоко системном уровне и без драйверов-фильтров тут никак.

Ваш вариант подойдет только если
а) ВСЕ делать из эксплорера.
б) до всего доступаться по правилам для shell extensions через COM.

а вот попробуйте тот же zip файл на XP открыть не из эксплорера, а из того же нотепада, где же его хваленй COMпонент в этом случае?

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

МДС>Помоему это всё-таки можно без драйвера сделать.

МДС>Я вот тут компонент нашёл:

МДС>http://www.shellplus.com/examples/namespace-extension-example.html
... << RSDN@Home 1.0 beta 4 >>
Valery A. Boronin, RSDN Team, linkedin.com\in\boronin
R&D Mgmt & Security. AppSec & SDL. Data Protection and Systems Programming. FDE, DLP, Incident Management. Windows Filesystems and Drivers.
Re[4]: расширение для Explorer
От: Valerio Россия linkedin.com/in/boronin
Дата: 17.01.03 13:50
Оценка:
V>Ваш вариант подойдет только если
V>а) ВСЕ делать из эксплорера.
V>б) до всего доступаться по правилам для shell extensions через COM.
кстати говоря, здесь я немного погорячился, точнее неверно выразился

имелся ввиду главным образом тот факт, что пространство оболочки поддерживается в-основном explorer'ом и набором компонент, которые живут в пространстве оболочки и только, плюс они никак не участвуют в обычных операциях файлового ввода вывода вроде ReadFile/WriteFile, из DOS-программ, например, или любых других программ, не заточенных на взаимодействие с оболочкой (shell extension). Соответственно для таких программ (а их подавляющее большинство) "мы их теряем, доктор!"

Т.к. нотепад не знает ничего и не использует соотв. функциональность .zip handler от эксплорера, то и с архивами он работает несколько специфично — просто проецирует содержимое в память и дает редактировать, не совсем то, чего хотелось

Кстати это очень полезный факт, что notepad использует MMF (memory-mapped files) механизм и это широко используется при отладке писателями файловых драйверов...

таким образом расширение оболочки — решение для довольно узкого класса задач. По сравнению с драйверным подходом, конечно. вот что я хотел сказать.

и если хочется добиться решения оригинальной постановки вопроса, то тут субж не годится
... << RSDN@Home 1.0 beta 4 >>
Valery A. Boronin, RSDN Team, linkedin.com\in\boronin
R&D Mgmt & Security. AppSec & SDL. Data Protection and Systems Programming. FDE, DLP, Incident Management. Windows Filesystems and Drivers.
Re[5]: расширение для Explorer
От: МДС  
Дата: 17.01.03 14:00
Оценка:
V>таким образом расширение оболочки — решение для довольно узкого класса задач. По сравнению с драйверным подходом, конечно. вот что я хотел сказать.

V>и если хочется добиться решения оригинальной постановки вопроса, то тут субж не годится

Вообще то я хотел сделать запрос пароля при входе в виртуальную папку
И указал на zipmagic только потому, что это единственная программа которая их создаёт,
из всех что я заню.
Re[6]: расширение для Explorer
От: Valerio Россия linkedin.com/in/boronin
Дата: 17.01.03 14:15
Оценка:
МДС>Вообще то я хотел сделать запрос пароля при входе в виртуальную папку
МДС>И указал на zipmagic только потому, что это единственная программа которая их создаёт,
МДС>из всех что я заню.

ха, так сразу бы так и сказал
если тебе просто надо чтобы эксплорер этот диалог выкидывал, то да — хватит субжа

а если ты хочешь чтобы при любом обращении к указанной (виртуальной от zipmagic) или физической директории, которые ФАРом ты наблюдаешь, из любой проги или по сетке, то тут задача крайне нетривиальная даже если ты напишешь такой фильтр-драйвер, есть тут свои приколы при взаимодействии с юзер режимом....
... << RSDN@Home 1.0 beta 4 >>
Valery A. Boronin, RSDN Team, linkedin.com\in\boronin
R&D Mgmt & Security. AppSec & SDL. Data Protection and Systems Programming. FDE, DLP, Incident Management. Windows Filesystems and Drivers.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.