Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Файловая система
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 23.06.2011, 11:27
Аватар для Klassenas
Klassenas Klassenas вне форума
Новичок
 
Регистрация: 25.05.2009
Адрес: Казахстан, Павлодар
Сообщения: 87
Версия Delphi: Rad Studio 2010
Репутация: 1570
Вопрос Блокирование файла

Нашёл в интернете програмку, называется "секрет". Она защищает файлы и папки от несанкционированного доступа, приписывая в конце имени файла точку. В результате винда не может получить к файлу доступ. Его невозможно ни скопировать, ни переименовать, ни удалить. Я пытался в делфи реализовать подобную функцию, но обломался, т.к. все известные мне функции доступа к файлам в делфи не позволяют вытворять такие выкрутасы. Быть может, надо написать процедуру на ассемблере? Кто знает, как можно такое замутить?
Скачать прогу можно здесь: www.exnax.narod.ru
__________________
Если ты чего-то не знаешь, значит есть шанс научиться чему-то новому

Последний раз редактировалось Klassenas, 23.06.2011 в 11:31.
Ответить с цитированием
  #2  
Старый 23.06.2011, 11:49
Аватар для Vayrus
Vayrus Vayrus вне форума
Исполняемый Ретровирус
 
Регистрация: 09.08.2008
Адрес: Umbrella Corporation
Сообщения: 743
Репутация: 1293
По умолчанию

Попробуй поиграться с MoveFile и CreateFile
Ответить с цитированием
  #3  
Старый 23.06.2011, 21:47
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Программа никакой защиты файлам не делает. Точку легко удалить консольным приложением. Как сказано выше играться нужно API функциями.
Ответить с цитированием
  #4  
Старый 24.06.2011, 08:59
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

имхо, это из той же серии, что и:
в Windows нельзя создать папки с некоторыми именами, например "con", "com1" и т.д.
но можно так:
md \\.\d:\con
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #5  
Старый 24.06.2011, 09:17
Аватар для Vayrus
Vayrus Vayrus вне форума
Исполняемый Ретровирус
 
Регистрация: 09.08.2008
Адрес: Umbrella Corporation
Сообщения: 743
Репутация: 1293
Лампочка

Вот ссылочка по теме:
ссылка
Ответить с цитированием
  #6  
Старый 24.06.2011, 11:35
Аватар для Vayrus
Vayrus Vayrus вне форума
Исполняемый Ретровирус
 
Регистрация: 09.08.2008
Адрес: Umbrella Corporation
Сообщения: 743
Репутация: 1293
По умолчанию

А вот и развернутый сорец
Ответить с цитированием
  #7  
Старый 24.06.2011, 11:52
Аватар для Klassenas
Klassenas Klassenas вне форума
Новичок
 
Регистрация: 25.05.2009
Адрес: Казахстан, Павлодар
Сообщения: 87
Версия Delphi: Rad Studio 2010
Репутация: 1570
Хорошо

Спасибо, буду разбираться. Штуковина полезная.
__________________
Если ты чего-то не знаешь, значит есть шанс научиться чему-то новому
Ответить с цитированием
  #8  
Старый 24.06.2011, 12:09
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

что и следовало ожидать:
Код:
const
Template = '\\?\%s.\';//Protection Template
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #9  
Старый 26.06.2011, 22:22
Аватар для Klassenas
Klassenas Klassenas вне форума
Новичок
 
Регистрация: 25.05.2009
Адрес: Казахстан, Павлодар
Сообщения: 87
Версия Delphi: Rad Studio 2010
Репутация: 1570
По умолчанию

Возникло 3 вопроса:
1) Почему не помогает SHFileOperation
2) Почему работает MoveFileEx
3) Что значит '\\?\%s.\' ? Т. е. в общих чертах понятно, но хочется знать по-подробнее. И почему не написать просто PChar(S+'.') вместо PChar(Format(Template, [S])) ?
__________________
Если ты чего-то не знаешь, значит есть шанс научиться чему-то новому
Ответить с цитированием
  #10  
Старый 26.06.2011, 22:33
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

1. Предназначен для обычного пользователя (диалог открытие файла/каталога).
2. Предназначен для программиста.
3. можно и так "\\.\Ваш путь", почему так - к Гейтцу. PChar не String и плюсовать не позволяет (можно использовать lstrcat, lstrcpy).
Ответить с цитированием
  #11  
Старый 27.06.2011, 16:25
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

wfx-плагин для Total Commander 7.03 (не проверял на других):
-создает "такую папку" в CSIDL_APPDATA
-копирование, переименование, удаление, смена атрибутов файлов
-создание, удаление каталогов

после установки плагина:
-Alt+F1 (Alt+F2) - Network Neighborhood (Сетевое окружение) - HideFolder

скачать:
http://narod.ru/disk/17305469001/Plu...older.rar.html
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 17:22.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter