Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.11.2010, 12:49   #1
Bad-XxX
Пользователь
 
Регистрация: 27.09.2010
Сообщений: 18
По умолчанию

Доброго времени суток.
Есть определённая ветка реестра типа HKLM\Software\xxxxx, необходимо заблокировать доступ к ней на чтение/запись, пока программа открыта. В прошлом как-то делал, вспомнить не могу =( Поиск результатов не дал.
Помню что какие-то параметры нужно установить в RegCreateKeyEx, а вот какие...

Посмотрел параметры, уже часа 2 перебираю, что же из этого должно работать именно так, как хочу, потому что нигде не указано, какой из параметров блокирует доступ к ветке. Вроде был GENERIC_READ, однако не работает.

Последний раз редактировалось mihali4; 29.11.2010 в 13:57.
Bad-XxX вне форума Ответить с цитированием
Старый 28.11.2010, 18:41   #2
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

"Поиск результатов не дал" - говорят вообще все.

Вы бы сказали, что вы пробовали, что при этом получалось.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 28.11.2010, 19:56   #3
Bad-XxX
Пользователь
 
Регистрация: 27.09.2010
Сообщений: 18
По умолчанию

Сказал уже, перепробовал массу параметров по RegCreateKeyEx, а именно samDesired. Насколько помню, какое-то сочетание констант именно в этом параметре давало нужный результат (могу ошибаться). lpSecurityAttributes - вряд ли, не пользователя же под это дело создавать. dwOptions - не похоже, всего 3 варианта, временное значение в ОЗУ, постоянное значение и режим бэкапа (С этим параметром функция игнорирует samDesired, а на выходе выдает ошибку доступа. Одним словом, не предназначена для этого).
В результате должно получиться примерно следующее: Невозможно получить доступ к разделу, т.к. раздел занят другим процессом.

// "Поиск результатов не дал" - говорят вообще все.
// Можете следом поискать, вряд ли что найдёте. Прошлый фрагмент кода (который работал должным образом) был "списан" со старой версии мейл.ру агент через олли, сейчас больше в нём такого нет.

Последний раз редактировалось Bad-XxX; 28.11.2010 в 20:07.
Bad-XxX вне форума Ответить с цитированием
Старый 29.11.2010, 11:48   #4
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Writing and Deleting Registry Data:
Цитата:
It is not possible to lock a registry key during a write operation to synchronize access to the data. However, you can control access to a registry key using security attributes.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как запретить программе запись в ветку реестра? Tihon Win Api 4 12.01.2011 13:16
Hook. Скрыть ветку реестра wma57 Фриланс 3 26.10.2010 20:36
TTreeNodes, узнать выбраную ветку? PVD Компоненты Delphi 2 25.10.2010 01:37
dxDbTreeView (найти и раскрыть ветку по значению в БД) Aleks_www Компоненты Delphi 0 13.09.2010 14:37
Удалить ветку из реестра -=Virus=- Общие вопросы Delphi 3 28.05.2010 16:02