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

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

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.08.2009, 16:03   #1
Tihon
Пользователь
 
Регистрация: 18.12.2007
Сообщений: 40
По умолчанию Как запретить программе запись в ветку реестра?

Чужая программа (ЧП) работает с сд-рома и свои данные записывает в ветку реестра.
Моя программа (МП) может записать в эту ветку, так чтобы ЧП их прочитала и использовала...

При некоторых условиях ЧП портит ранее записанную ветку данными старого сеанса.
Как программно запретить ЧП запись в ветку реестра? МП обеспечит ее данными.
Материал по теме вроде бы и есть, но пока не доходит до мозгов... Покажите примерчик, пожалуйста.

ЗЫ В нескольких местах в инете периодически возникали такие обсуждения... Но нигде до решения не дошли

Вот пример. В реестр записывается подраздел с ключом и значением.
Код:
function RegWriteStr(RootKey: HKEY; Key, Name, Value: string): Boolean;
var
  Handle: HKEY;
  Res: LongInt;
begin
  Result := False;
  Res := RegCreateKeyEx(RootKey, PChar(Key), 0, nil,  REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, nil, Handle, nil);
  if Res <> ERROR_SUCCESS then
        Exit;
  Res := RegSetValueEx(Handle, PChar(Name), 0, REG_SZ, PChar(Value),  Length(Value) + 1);
  Result := Res = ERROR_SUCCESS;
  RegCloseKey(Handle);
end;
Что надо исправить, чтобы изменить разрешение на доступ к этому подразделу?

Последний раз редактировалось Tihon; 13.08.2009 в 16:10.
Tihon вне форума Ответить с цитированием
Старый 13.08.2009, 16:18   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Покажите примерчик, пожалуйста.
Сам недавно кусал гранит этой области. Понял одно - нужно изменять ACL ветки, а соответственно читать про ACL, ACE, SetSecurityInfo... ну и прочее.

P.S. Я обламался, так толком и не поняв как с этой мишурой работать, но точно знаю что неплохой пример у Фленова (кажись. ибо книга у меня не целиком) был.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.08.2009, 17:19   #3
Tihon
Пользователь
 
Регистрация: 18.12.2007
Сообщений: 40
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Сам недавно кусал гранит этой области. Понял одно - нужно изменять ACL ветки, а соответственно читать про ACL, ACE, SetSecurityInfo... ну и прочее.

P.S. Я обламался, так толком и не поняв как с этой мишурой работать, но точно знаю что неплохой пример у Фленова (кажись. ибо книга у меня не целиком) был.
Библия Делфи Фленова у меня есть. Но по данному вопросу - ничего... Какую книгу Фленова ты имеешь в виду?

Вообще, вопрос становится очень запутанным... Неужели все так сложно?!
Tihon вне форума Ответить с цитированием
Старый 12.01.2011, 13:03   #4
Puskarats
Новичок
Джуниор
 
Регистрация: 09.01.2011
Сообщений: 1
По умолчанию

В какой ветке реестра стоит бит запрета на исполнение regedit.exe?
Puskarats вне форума Ответить с цитированием
Старый 12.01.2011, 13:16   #5
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Вариант исправить разрешения руками через RegEdit не устраивает?

Если нет, то мат-часть здесь: http://www.delphikingdom.ru/asp/view...catalogid=1322

Практика: SetNamedSecurityInfo (WinAPI), либо дельфёвая объектная обёртка (см. демки).
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как запретить выключение компьютера? AnTe Win Api 10 04.12.2009 10:36
Как запретить буферизацию страницы SeRhy PHP 1 02.08.2009 17:48
как запретить раскрытие формы Анастасия123456789 Помощь студентам 3 21.04.2009 11:53
Как считать значение из реестра? (делфи) zotox Помощь студентам 7 26.09.2008 12:38
Как удалить из реестра? AngelOfDeath Общие вопросы Delphi 9 10.04.2008 18:09