Текущий архив: 2003.10.23;
Скачать: CL | DM;
Вниз
SaveKey с правами не ALL_ACCESS Найти похожие ветки
← →
RadaR (2003-08-15 19:43) [0]Я использую TRegistry, но столкнулся с проблемой:
SaveKey происходит всегда с аттрибутами ПОЛНЫЙ ДОСТУП
Хотел на прямую поюзать АПИ (там есть переменная для задания такого доступа) но не нашел описания lpSecurityAttributes: PSecurityAttributes.
function RegSaveKey(hKey: HKEY; lpFile: PChar;
lpSecurityAttributes: PSecurityAttributes): Longint; stdcall;
Кто чем может помочь?
← →
Игорь Шевченко (2003-08-18 10:40) [1]Эта переменная указывает какие атрибуты будут у создаваемого файла. К доступу к реестру она не имеет отношения.
← →
jonni (2003-08-18 13:16) [2]to Игорь Шевченко:
то что отношения к реестру нету это ты зря
LONG RegCreateKeyEx(
HKEY hKey, // handle of an open key
LPCTSTR lpSubKey, // address of subkey name
DWORD Reserved, // reserved
LPTSTR lpClass, // address of class string
DWORD dwOptions, // special options flag
REGSAM samDesired, // desired security access
LPSECURITY_ATTRIBUTES lpSecurityAttributes, // address of key security structure
PHKEY phkResult, // address of buffer for opened handle
LPDWORD lpdwDisposition // address of disposition value buffer
);
← →
jonni (2003-08-18 13:19) [3]to RadaR:
posmotri na eto naprimer:
The SECURITY_ATTRIBUTES structure contains the security descriptor for an object and specifies whether the handle retrieved by specifying this structure is inheritable.
//--------------------------------
typedef struct _SECURITY_ATTRIBUTES { // sa
DWORD nLength;
LPVOID lpSecurityDescriptor;
BOOL bInheritHandle;
} SECURITY_ATTRIBUTES;
//--------------------------------
← →
Игорь Шевченко (2003-08-18 13:55) [4]jonni © (18.08.03 13:16)
Внимательно вопрос читаем.
> function RegSaveKey(hKey: HKEY; lpFile: PChar;
> lpSecurityAttributes: PSecurityAttributes): Longint; stdcall
Внимательно help читаем по RegSaveKey.
lpSecurityAttributes
Windows NT: Pointer to a SECURITY_ATTRIBUTES structure that specifies a security descriptor for the new file. If lpSecurityAttributes is NULL, the file gets a default security descriptor.
Windows 95: This parameter is ignored.
← →
jonni (2003-08-18 18:02) [5]может ону подрозумевают ключ реестра как файл......?
← →
Almaz (2003-08-19 00:49) [6]
> RadaR (15.08.03 19:43)
> Я использую TRegistry, но столкнулся с проблемой:
> SaveKey происходит всегда с аттрибутами ПОЛНЫЙ ДОСТУП
> Хотел на прямую поюзать АПИ (там есть переменная для задания
> такого доступа) но не нашел описания lpSecurityAttributes:
> PSecurityAttributes.
>
> function RegSaveKey(hKey: HKEY; lpFile: PChar;
> lpSecurityAttributes: PSecurityAttributes): Longint; stdcall;
>
> Кто чем может помочь?
Попробую помочь ;)
1) Если у вас Дельфи версии >= 5.0 то у TRegistry есть свойство - Access. По умолчанию, он задан как KEY_ALL_ACCESS, но достаточно вручную установить Access := KEY_READ (или другой доступ, какой вам нужен) - и пользоваться TRegistry дальше.
2) Если Дельфи 3.0 или ниже (про 4.0 не знаю) то придуться использовать WinAPI. Так вот права на доступ задаются при открытии ключа, а не при сохранении значения. Т.е. права задаются в функции RegOpenKeyEx. Например:
RegOpenKeyEx(HKEY_CLASSES_ROOT, "имя ключа", 0,
KEY_READ, Key)
3) PSecurityAttributes - к правам доступа к ключам в том понимании, в котором вы его изложили - отношения не имеет
Удачи.
Страницы: 1 вся ветка
Текущий архив: 2003.10.23;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.012 c