Страница 1 из 1

Заблокировать копирование

Добавлено: 25 окт 2005, 14:51
Dr_Grizzly
Всем привет! Не знаю в какой форум писать, но такая проблема. Есть папка с файлами, можно ли не дать скопировать ее никуда, ни на компакт диск, ни на другой комп? Как можно такое реализовать?

Добавлено: 25 окт 2005, 15:30
Zroman
В Юниксе или Линуксе с этим проще.
Под виндой возможно, толко оесли она NT-подобная. (NT, 2000, ХР)

Добавлено: 26 окт 2005, 10:02
Dr_Grizzly
Да-да, она NT подобная ;-) Давай по подробнее

Добавлено: 26 окт 2005, 18:36
Zroman
Я сам с НТ-подобными не работаю (по политическим мотивам ;) ) посему помочь не могу. Знаютолько, что папкам и файлам в НТ можно давать права доступа.
Где-то должны быть форумы по администрированию Виндовс.

Добавлено: 27 окт 2005, 07:41
Dr_Grizzly
:) где даются права доступов я знаю, но оно все равно позволяет записать например на CD диск эту папку без спроса.

Добавлено: 27 окт 2005, 08:04
treider
Если есть права на чтение, то записать информацию можно куда угодно. Для того, что бы этого избежать нужно написать какойнибудь монитор который будет перехватывать события на запись и блокировать то, что записывать не положено.

Добавлено: 27 окт 2005, 09:17
Dr_Grizzly
Во-во-во!!! Мыслишь в правильную сторону ;) Где бы такой раздобыть, или как его написать осталось решить :)

Добавлено: 27 окт 2005, 09:58
treider
Задай вопрос в разделе Win API, можно ли повесить что то вроде huk на копирование файла. Я не сталкивался не знаю

Добавлено: 24 ноя 2005, 01:45
Naeel Maqsudov
В Windows, начиная от Win95 это можно сделать, если зарегистрировать в системе специальный Shell Extention.
Shell Extention - это COM-сервер, который встраивается в Shell (т.е. в проводник Windows) для расширения его функциональности.
(Примеры: дополнительные пункты в локальном меню на файлах определенного типа (RAR, ZIP и др.); Виртуальные папки в пространстве имен Windows (панель управления, корзина, сетевое окружение,... что-то свое...)

Вам нужен COM-сервер, реализующий интерфейс ICopyHook.
Windows сама будет вызывать Вашу DLL, создавать Ваш объект и вызывать в нем метод CopyCallBack. В качестве параметра передаст тип ооперации (copy/delete/move...), а также текущие и будущие имена. Результат выполнения метода показывает разрешена такая операция или нет.

Работающий пример на Delphi есть в книге
Н.З.Елманова, С.В.Трепалин. Delphi 4 Технология COM. М.: Диалог-ИФИ, 1999