![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Определение доступа к ресурсам компьютера [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]Попробовать почитать/пописать и прочее. :)