![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Запрет на удаление процесса по средвам 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 всё равно превосходно убивает такой процесс :))))