Форум программистов, компьютерный форум CyberForum.ru

Delphi и WinAPI

Войти
Регистрация
Восстановить пароль
 
 
demon31
0 / 0 / 0
Регистрация: 01.10.2013
Сообщений: 337
#1

Запрет на изменение папки - Delphi WinAPI

03.12.2016, 17:37. Просмотров 763. Ответов 32
Метки нет (Все метки)

Подскажите, каким образом можно реализовать запрет доступа на любое изменение, открытие, чтение какой-либо папки и всех файлов внутри её посредством winapi в delphi 7, OC Windows.
Требуется так, чтоб я открыл программу и нажал кнопку, и после этого пока программа работает будет запрет на доступ к папке.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.12.2016, 17:37     Запрет на изменение папки
Посмотрите здесь:

Запрет запуска приложений - Delphi WinAPI
Как сделать программу ,чтобы она блокировала запуск определенных программы.

Полный запрет на сворачивания формы - Delphi WinAPI
Подскажите как удержать форму на рабочем столе по нажатию на win+d Облазил весь интернет решений пару нашёл : 1 . поставить хук на...

Запрет на переход в меню по нажатию горячей клавиши - Delphi WinAPI
Всем привет! Есть программа, активно использующая клавишу Alt. Чтобы не происходил переход в меню, я слушаю сообщение WM_SYSCOMMAND. Если...

Делфи копирование папки - Delphi WinAPI
Здравствуйте. Пишу программу для форматирование флешки и переноса на нее новой папки. Проблема с копирование папки. Сможете помочь? И еще...

Отловить открытие определенной папки - Delphi WinAPI
Здравствуйте, помогите пожалуйста с решением проблемы: Необходимо при открытии определенной папки(двойной клик по папке в explorer)...

Запуск приложения из сетевой папки - Delphi WinAPI
Добрый день! В сетевой папке есть БД состоящая из файлов: program.exe и Base.mdb С локальной машины пытаюсь запустить исполняемый файл...

Перехват API для скрытия папки - Delphi WinAPI
Привет всем решил создать прогу которое скрывает папку для этого мне надо изучать перехват API, поможите мне изучать перехват API?

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
qwertehok
1317 / 1313 / 278
Регистрация: 29.08.2013
Сообщений: 8,576
03.12.2016, 20:31     Запрет на изменение папки #2
как вы себе это представляете?
можно создать пользователя и дать ему права на папку, а остальных убрать
но администратор сможет все равно стать владельцем и назначить себе права

можно конечно постоянно мониторить изменение прав на папку, но ИМХО это как-то не красиво

ЗЫ может вы опишите исходную задачу?
demon31
0 / 0 / 0
Регистрация: 01.10.2013
Сообщений: 337
03.12.2016, 21:03  [ТС]     Запрет на изменение папки #3
Суть такая примерно: есть компьютер, скажем, что он как сервер. На нём данные. Если к серверу через локалку кто-то подключится, то мне нужно сделать программно так, чтобы у него не было доступа к этим данным, он не мог ни скопировать, ни прочитать, ни удалить их.
Убежденный
Системный программист
Эксперт С++
15239 / 6871 / 1088
Регистрация: 02.05.2013
Сообщений: 11,254
Завершенные тесты: 1
03.12.2016, 21:36     Запрет на изменение папки #4
Чем не устраивает вариант поставить запрет на доступ пользователям,
выполнившим вход в систему по сети? Группа называется S-1-5-2,
если не ошибаюсь. В помощь функции SetSecurityInfo, SetNamedSecurityInfo.
qwertehok
1317 / 1313 / 278
Регистрация: 29.08.2013
Сообщений: 8,576
03.12.2016, 23:20     Запрет на изменение папки #5
Цитата Сообщение от demon31 Посмотреть сообщение
Если к серверу через локалку кто-то подключится
что значит кто-то?
если кто-то значит у него есть имя и пароль
если есть имя запретите этому подключаться к ненужным ему папкам

домен то поднят?
demon31
0 / 0 / 0
Регистрация: 01.10.2013
Сообщений: 337
04.12.2016, 12:33  [ТС]     Запрет на изменение папки #6
Подразумевается несанкционированный доступ.
Сам по себе сервер доступен для пользователей, но именно эта папка с файлами, должна быть недоступна.
И недоступна именно программно, а не просто выставлены права.
Убежденный
Системный программист
Эксперт С++
15239 / 6871 / 1088
Регистрация: 02.05.2013
Сообщений: 11,254
Завершенные тесты: 1
04.12.2016, 12:51     Запрет на изменение папки #7
Цитата Сообщение от demon31 Посмотреть сообщение
И недоступна именно программно, а не просто выставлены права.
Если бы запрет доступа можно было обойти программно, в такой "защите"
не было бы никакого смысла.
demon31
0 / 0 / 0
Регистрация: 01.10.2013
Сообщений: 337
04.12.2016, 13:11  [ТС]     Запрет на изменение папки #8
А если перефразировать задачу: можно ли сделать так, чтобы пока выполняется моя программа, т.е. пока она включена, нельзя было ничего сделать с папкой и файлами в ней, ни читать, ни скопировать, ни удалить?
Убежденный
Системный программист
Эксперт С++
15239 / 6871 / 1088
Регистрация: 02.05.2013
Сообщений: 11,254
Завершенные тесты: 1
04.12.2016, 13:26     Запрет на изменение папки #9
Можно, например, ставить права на папку при запуске программы и
снимать их при завершении.

А еще можно фильтрующий драйвер файловой системы написать,
но это будет на несколько порядков сложнее...
demon31
0 / 0 / 0
Регистрация: 01.10.2013
Сообщений: 337
04.12.2016, 13:28  [ТС]     Запрет на изменение папки #10
А как реализовать первый способ?
qwertehok
1317 / 1313 / 278
Регистрация: 29.08.2013
Сообщений: 8,576
04.12.2016, 15:53     Запрет на изменение папки #11
а смысл тогда в программе?
батником можно права менять
demon31
0 / 0 / 0
Регистрация: 01.10.2013
Сообщений: 337
04.12.2016, 16:15  [ТС]     Запрет на изменение папки #12
Смысл в том, что мне нужно запретить доступ ...
Убежденный
Системный программист
Эксперт С++
15239 / 6871 / 1088
Регистрация: 02.05.2013
Сообщений: 11,254
Завершенные тесты: 1
04.12.2016, 16:23     Запрет на изменение папки #13
Написал же выше - SetSecurityInfo, SetNamedSecurityInfo.
Можно, например, сгенерировать дескриптор безопасности и вытащить
из него список контроля доступа (DACL), после чего навесить на нужную папку.
Т.е. при запуске программы делаем SetSecurityInfo с DACL, где разрешен
доступ всем, кроме залогинившихся по сети, а при завершении программы
снимаем его, заменяя обычным, где доступ разрешен всем.
См. функции ConvertStringSecurityDescriptorToSecurityDescriptor и GetSecurityDescriptorDacl.
demon31
0 / 0 / 0
Регистрация: 01.10.2013
Сообщений: 337
04.12.2016, 16:48  [ТС]     Запрет на изменение папки #14
Ох, сложно .-.
Я копался с SetSecurityInfo, SetNamedSecurityInfo и даже близко не понял как они устроены.
AVolkof
2 / 2 / 0
Регистрация: 02.01.2016
Сообщений: 44
Записей в блоге: 2
04.12.2016, 17:37     Запрет на изменение папки #15
А "открыть" все фалы в папке не вариант?
Как тут: Блокировка файла
demon31
0 / 0 / 0
Регистрация: 01.10.2013
Сообщений: 337
04.12.2016, 18:21  [ТС]     Запрет на изменение папки #16
Любой вариант приемлем, сейчас попробую как там

Добавлено через 14 минут
Pascal
1
2
3
4
5
procedure TForm1.Button1Click(Sender: TObject);
var FS: TFileStream;
begin
  FS:=TFileStream.Create('Путь к файлу', fmShareExclusive);
end;
Отличный вариант, но мне нужно бы работа с WinApi, тут есть пример

Pascal
1
2
3
4
5
6
7
8
h := CreateFile('C:\test.txt',
             GENERIC_READ or GENERIC_WRITE,
             FILE_SHARE_READ or     // разрешить чтение
             FILE_SHARE_WRITE,      // разрешить запись
             nil,                   // pointer to security attributes
             OPEN_EXISTING,
             FILE_ATTRIBUTE_NORMAL,
             0);
Только как сделать, что бы отключить чтение или доступ, как с первым случаем?
AVolkof
2 / 2 / 0
Регистрация: 02.01.2016
Сообщений: 44
Записей в блоге: 2
04.12.2016, 18:27     Запрет на изменение папки #17
https://msdn.microsoft.com/en-us/lib...(v=vs.85).aspx

Вроде бы третий параметр надо "ноль".
demon31
0 / 0 / 0
Регистрация: 01.10.2013
Сообщений: 337
04.12.2016, 18:33  [ТС]     Запрет на изменение папки #18
Да я что-то уже все обнулил и всё равно открывает нормально .-.
И всё равно есть проблема, это работает для файла, папку в которой файлы как минимум скопировать можно, хоть и без файлов, не знаю, будет ли это уместно.
AVolkof
2 / 2 / 0
Регистрация: 02.01.2016
Сообщений: 44
Записей в блоге: 2
04.12.2016, 19:19     Запрет на изменение папки #19
Да, с флагами какая-то ерунда.
В порядке бреда: зашифровать, или загнать в архив с паролем.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.12.2016, 19:23     Запрет на изменение папки
Еще ссылки по теме:

Как скопировать файл из одной папки в другую? - Delphi WinAPI
Подскажыте пожалуйста, можно как-то при помощи Delphi скопировать любой файл с одной папкив другую?

Запрет на удаление папки - Администрирование Windows
Доброго! Может кто подскажет как в Windows 7 сделать полный доступ к папке и ее содержимому, кроме возможности ее (главной папки)...

Запрет на удаление папки с файлами - CMD/BAT
Доброго времени. Знаю что можно через параметры папки, безопасность-дополнительно-изменить разрешения-изменить, можно поставить галочки на...

Запрет на индексацию папки поисковиками - SEO
На сайте, в корне есть папка с именем "folder", как запретить поисковикам индексировать её содержимое? Или как поисковику сказать что в...

Запрет копирования файлов из сетевой папки - Сети
Дано: Сеть с доменом. Клиентские ПК. 1 ПК используемый в качестве хранилища файлов с расшаренной папкой (для хранения музыки,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
demon31
0 / 0 / 0
Регистрация: 01.10.2013
Сообщений: 337
04.12.2016, 19:23  [ТС]     Запрет на изменение папки #20
Шифроваться они и так будут, а архив не катит, т.к. мне с ними еще работать прямо в программе.
Yandex
Объявления
04.12.2016, 19:23     Запрет на изменение папки
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru