Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Запрет на удаление процесса по средвам ACL [D6, Win2k]


Комбинатор ©   (2005-01-03 21:08:00) 

Необходимо, чтобы процесс не вырубался из диспетчера задач.
На форуме нашёл след. код:

Procedure SetProcessSelfSecurity;
Var
SecDescriptor : PSecurityDescriptor;
SecACL : ACL;
begin
GetMem(SecDescriptor, SizeOf(TSecurityDescriptor));
InitializeSecurityDescriptor(SecDescriptor, SECURITY_DESCRIPTOR_REVISION);
InitializeACL(SecACL, SizeOf(SecACL), 2);
SetSecurityDescriptorDACL(SecDescriptor, True, @SecACL, False);
SetKernelObjectSecurity(GetCurrentProcessDACL_SECURITY_INFORMATION, SecDescriptor);
end;

Он работает, но с одной проблемой:

я запрещаю доступ "всем", т.е. и пользователю и системе ->
когда я пытаюсь ПУСК->Завершение работы->Перезагрузка(или Завершение работы) система не перезагружается и не вырубается.
Я думаю из-зи того, что пытается и не может вырубить мой процесс.
Подскажите как запретить доступ не всем, а только "юзеру"...
Заранее спасибо!


Fay   (2005-01-04 00:20:00) [1]

2 Комбинатор   (03.01.05 21:08)
>> InitializeACL(SecACL, SizeOf(SecACL), 2);
2 - это ACL_REVISION? А что, западло так и написать?


kaZaNoVa   (2005-01-03 22:12:00) [2]

Комбинатор   (03.01.05 21:57) [2]
круто придумано:))
а не проще тогда сервис написать?


Комбинатор   (2005-01-03 21:57:00) [3]

а...из far'а тоже с дебаг привилегиями убивается....моя задача - только запрет на диспетчер задач.


kaZaNoVa   (2005-01-03 21:38:00) [4]

Комбинатор   (03.01.05 21:08)
прикольный код, но ProcessExplorer всё равно превосходно убивает такой процесс :))))


Наверх

Титульная страница Поиск, карта сайта Написать письмо