Уважаемые эксперты, скажите как можно защитить дирикторию (папку) от доступа (чтение, изменение). Уточню что менять атрибуты на доступ необходимо програмно и под провами одной и тойже учетной записи в Винде.
Здравствуйте, Иван! Искренне надеюсь, что учетные записи выдает администратор и только он, иначе ждите непрятностей :). Поэтому оставим за кадром раздачу прав, а перейдем сразу к аттрибутам файлов. Чтобы получить значение аттрибутов файла или каталога, используется функция: DWORD GetFileAttributes(LPCTSTR lpFileName); где параметром имя файла или каталога. Чтобы установить аттрибуты, используется функция: BOOL SetFileAttributes(LPCTSTR lpFileName, DWORD FileAttributes); где первый параметр - имя файла или каталога, а второй и есть набор аттрибутов. Аттрибуты: FILE_ATTRIBUTE_ARCHIVE - архивный, FILE_ATTRIBUTE_HIDDEN - скрытый, FILE_ATTRIBUTE_READONLY - только для чтения, FILE_ATTRIBUTE_SYSTEM - системный. Там есть еще, поэтому загляните в хелп :). В СС++ набор аттрибутов задается через ||, а в Дельфи обычным плюсованием.
Ответ отправлен: 08.07.2004, 10:53 Отправитель: sir henry Отвечает КиберТварь
Здравствуйте, Иван! Все равно в виндах можно будет изменять Ответ отправлен: 07.07.2004, 13:19 Отправитель: КиберТварь
Вопрос № 1656
Как же перехватывать обращение других приложений к папке? Может быть с помощью function SetWindowsHookEx(idHook: Integer; lpfn: TFNHookProc; hmod: HINST; dwThreadId: DWORD): HHOOK; а в качестве idHook что брать(какой тип ловушки). И как потом отказать процессу, который попался?????
Добрый день, Иван! Не надо их перехватывать, надо грамотно права на доступ поставить (обязательно NTFS!!!!!). Ответ отправлен: 08.07.2004, 11:10 Отправитель: sir henry
Вопрос № 1657
Как в delphi6 строке(например time:string) присвоить текущее время в формате 08:23:43 (все с ведущим нулём) при этом использовать winapi есть функция GetTimeFormat но нет примера а описание не понятно
Доброе время суток, menand! time := TimeToStr(Now); Ответ отправлен: 08.07.2004, 08:53 Отправитель: КиберТварь Отвечает sir henry
Здравствуйте, menand! MyStrTime:=TimeToStr(Time); Ответ отправлен: 08.07.2004, 14:29 Отправитель: sir henry
Вопрос № 1658
Здравствуйте, уважаемые Эксперты! К вопросу 1654 об обновлении таблицы номенклатора. На попытку использовать функцию Refresh() ругается следующим образом: --------------------------- Debugger Exception Notification --------------------------- Project mdiapp.exe raised exception class EDBEngineError with message \'Table does not support this operation because it is not uniquely indexed.\'. Process stopped. Use Step or Run to continue. --------------------------- OK Help --------------------------- Возник вопрос связанный с тем, что в Query упоминается несколько таблиц, попробовал обновлять по отдельности... но все равно получал такое сообщение... В чем дело ума не приложу. Заранее спасибо за ответ.
Добрый день, Vadim! V mesto refresh mojno Query.Close; Query.Open;
Ответ отправлен: 08.07.2004, 15:12 Отправитель: THE_PRO Отвечает sir henry
Приветствую Вас, Vadim! Подсказка: "...because it is not uniquely indexed" - "... пока не будет уникального индекса". После добавление данных в таблицу, ей необходимо сделать Refresh() либо передвинуться по ней вперед или назад, а потом только для TQuery. Ответ отправлен: 08.07.2004, 12:37 Отправитель: sir henry
Вопрос № 1660
Здравствуйте. Sir henry, я понимаю что права можно составить, но задача в том чтоб под одной учеткой системой пользовались 20-30 юзеров, и имели бы каждый защищенную папку. Есть прога "Folder Guard" (http://www.winability.com)-защищает папки, мне нужно знать механизм защиты.
Доброе время суток, Ivan! У меня в какойто книге было про это. Я отпралю копию на ваш e-mail. (vancool@bk.ru) Ответ отправлен: 09.07.2004, 09:58 Отправитель: THE_PRO Отвечает sir henry
Здравствуйте, Ivan! Никто не расскажет Вам про механизм защиты в этой программе лучше, чем ее разработчики :)). От меня в этом плане ответа ждать бессмысленно :). Я подобными вещами раньше не занимался, поэтому мой кругозор только в рамках стандартных решений, типа шифровка файлов и папок по индивидуальному паролю. Однако, судя по описанию на этом сайте, речь по всей видимости идет о перехвате файловых операций у ОС. Примерная схема: 1. Составляется собственная таблица файлов вместо FAT/NTFS; 2. При попытке доступа ОС к файлу или папке, на месте того места в таблице файлов ОС где ссылка на файл(папку), идет ссылка на эту таблицу, а там уже Ваша воля организует доступ :). Извините, но большего я Вам сообщить не смогу. Сам я, в плане доступа, пользуюсь штатными возможностями системы (NTFS естественно :) и еще не было случая разочароваться :). Ответ отправлен: 09.07.2004, 05:58 Отправитель: sir henry
Форма отправки вопроса
Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+
или отправлять вопросы с сайта по адресу:
http://rusfaq.ru/cgi-bin/Message.cgi.