![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как можно перехватить событие закрытия программы [D7, WinXP]
Nemec © (2006-09-06 20:49:00)Здравствуйте господа! Пишу программу управления компьютерным классом, компьютер клиента должен работать строго определенное время (оплаченное), на компьютере клиента работает программа управляющая им. У пользователей права админов, чтобы могли сами ставить любой софт по сети. Можно ли как-нибудь перехватить попытку закрытия процесса из Диспетчера задач. Тогда можно будет предпринять определенные действия. Программа работает как сервис и как сервис ее не закроешь, но я бессилен против трех пальцев.
Заранее спасибо.
Elen (2006-09-07 13:55:00) [121]p.s. Сотри все игры
Elen (2006-09-07 13:54:00) [122]
> Nemec
Это напроч запретитдиспетчер задач (из кладовки этого сайта)
var
reg:TRegistry;
begin
reg := TRegistry.Create;
reg.RootKey := HKEY_CURRENT_USER;
reg.OpenKey('Software',True);
reg.OpenKey('Microsoft',True);
reg.OpenKey('Windows',True);
reg.OpenKey('CurrentVersion',True);
reg.OpenKey('Policies',True);
reg.OpenKey('System',True);
if Disable then
reg.Writeinteger('DisableTaskMgr',1)
else
reg.Writeinteger('DisableTaskMgr',0);
reg.CloseKey;
end;
Nemec (2006-09-07 05:30:00) [123]Спасибо ychenick. Именно так я в конечном итоге и сделал. Но этот прием мне не нравится, лишняя нагрузка на сервер и на ЛВС. Как-то раз встречал прогу, при попытке её убить, она выдавала сообщение на экран. Здесь интересна сама идея, каким образом происходит сама процедура принудительного завершения процесса, какие события порождаются и как их перехватить из под Delphi.
ychenick (2006-09-06 23:04:00) [124]Орион, руткиты это слишком сложно, к тому же антивири могут на них матерится.
Предлагаю просто сделать клиент-сервер на сокетах. Клиент каждые 10-15 сек отправляет на сервер сигнал что он запущен - вот и все дела. Как только сервер не получил сигнал в течении, например, 20 сек можно бить тревогу!
Орион (2006-09-06 21:51:00) [125]Технология руткитов и вперед, никто и не узнает, что твоя программа запущена ;) Естественно до поры, до времени :)
Nemec (2006-09-06 21:37:00) [126]я использовал такой прием, написал второй сервис, оба сервиса опрашивают друг друга с интервалом, если один из сервисов отсутствует второй посылает сообщение на сервер и выключает компьютер. Но!!! Пришел мальчик запустил FAR и в мгновение ока снес к черту всю защиту!!!
Nemec (2006-09-06 21:17:00) [127]нельзя, бывает так, что дети запускают зараз 2-3 игрущки (особенно новички) тогда, чтобы не перезагружать машину приходиться самому пользоваться тремя пальцами
Dmitrij_K (2006-09-06 21:09:00) [128]запретить диспетчвер задач