Азбука программирования в Win32 API


Азбука программирования в Win32 API - стр. 172


KEY WRITE

KEY_EXECUTE KEY ALL ACCESS

0x0001 0x0002 0x0004 0x0008 0x0010 0x0020

Права 'запрашивать данные подключен

Права устанавливать данные подключен

Права создавать подключи

Права перебирать подключи

Права изменять нотификацию

Права создавать символическую связь

(STANDARD_RIGHTS_READ |

KEY_QUERY_VALUE

KEYJiNUMERATE SUBJCEYS |

KEY_NOTIFY) & (-SYNCRONIZE)

(STANDARD_RIGHTS_WRITE

KEY_SET_VALUE |

KEY_CREATE_SUB_KEY) &

(-SYNCRONIZE)

KEY READ & (-SYNCRONIZE)

(STANDARD_RIGHTS_ALL j

KEY_QUERY_VALUE|

KEY_SET_VALUE [

KEY_CREATE_SUB_KEY |

KEY_ENUMERATE_SUB_KEYS |

KEY_NOTIFY j KEY_CREATE_LINK) &

(-SYNCRONIZE))

206

И наконец, последний, девятый аргумент - IpdwDisposition - указывает место, куда будет записана информация о том, что произошло с ключом. Дело в том, что если с помощью этой функции производится попытка создать ключ, который уже существует, то ключ не создается, а просто открывается. Поэтому приложению необходимо знать, что произошло при создании ключа. Если ключ был создан, то в поле, определяемое IpdwDisposition, записывается значение REG_CREATEDJNEWJCEY. В том случае, если ключ существовал и был открыт, записываемое значение равно REG OPENED EXISTING KEY. Это поле может быть использо­вано и для того, чтобы узнать, не открыт ли ключ другим приложением. Открытый ключ доступен только тому приложению, которое создало его. Таким образом, если приложение открывает заведомо существующий ключ и получает в ответ значение REG_CREATED_NEW KEY, то можно сделать вывод о том, что ключ занят другим приложением.

Функция возвращает значение ERROR SUCCESS в том случае, если ключ создан или открыт удачно. Любое другое значение является свиде­тельством того, что при создании или открытии ключа встретилась ошибка.

Итак, считаем, что ключ мы создали. А что необходимо сделать для того, чтобы не создать, а открыть существующий ключ? Для этого нужно вызвать функцию RegOpenKeyEx(), описание которой приведено ниже:

WINADVAPI LONG APIENTRY RcgOpenKeyExA (HKEYhKey,




Начало  Назад  Вперед



Книжный магазин