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

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

Как можно перехватить событие закрытия программы [D7, WinXP]


Страницы:   1 2 3 4 5 6 7

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]

запретить диспетчвер задач


Страницы:   1 2 3 4 5 6 7

Наверх

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