Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Определение доступа к ресурсам компьютера [D6, Win95/98]


Dr. Genius ©   (2005-06-14 17:50:00) 

Как, зная полный путь к какой-то определенной папке, узнать, имеет ли текущий пользователь доступ к этой папке, может ли он сохранять (перемещать или создавать) в этой папке свои файлы?
И ещё один аналогичный вопрос: как, зная полный путь к какому-то ключу в реестре (например, HKEY_LOCAL_MACHINE\Software\Microsoft\Windows), узнать, имеет ли всё тот же текущий пользователь к ней доступ на чтение/сохранение.
Если не трудно, выложите часть программного кода.
Может, существуют какие-то компоненты для Delphi, позволяющие автоматизировать определение доступа к ресурсам (т. е. к папкам и к ключам в реестре) компьютера. Если Вам известны таковые, то сообщите мне имена этих компонентов, а я уже дальше сам найду и скачаю их.


BiN   (2005-06-15 09:14:00) [1]

Другие способы громоздкие и требуют знаний

А вот эта фраза - вообще, анекдот. -)


BiN   (2005-06-15 09:12:00) [2]

Определение доступа к ресурсам компьютера [D6, Win95/98]

Dr. Genius   (14.06.05 17:50)


В Win95/98 отсутствует такое понятие, как контроль доступа.
В NT-линейке для сабжа используется GetSecurityInfo, GetNamedSecurityInfo.


Просто Джо   (2005-06-14 23:47:00) [3]

Только попробовав открыть. Сам подумай, вот гипотетический порядок действий:
1. Вызываещь крутую функцию CanIWrite.
2. Она возвращает True.
3. В этот момент, на этом ресурсе поменяли права. И ты уже не имеешь права туда писать.
4. Ты, обрадованный результатом функции CanIWrite, начинаешь писать в этот ресурс.
5. Тебе дается отлуп и код ошибки - "недостаточно прав".
Вопрос: и зачем тогда магическая функция CanIWrite??

Все, оказывается, проще: Пишешь куда тебе нужно и анализируешь код ошибки, если она возникла.


Sumor   (2005-06-14 23:41:00) [4]

Когда ты открываешь файл, каталог, диск, устройство, ветку реестра всегда указывается что ты хочешь с ним сделать.
Например для CreateFile параметр GENERIC_WRITE. Соответственно, если сможешь создать handle на файл, каталог, диск, устройство, ветку реестра с указанными свойствами, то права есть, нет значит нет. Другие способы громоздкие и требуют знаний


Dr. Genius   (2005-06-14 18:09:00) [5]

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


evvcom   (2005-06-14 18:01:00) [6]

Попробовать почитать/пописать и прочее. :)


Наверх

Титульная страница Поиск, карта сайта Написать письмо