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

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

Как можно заставить систему не запускать другие приложения... [D5, Win95/98, WinME]


Страницы:   1 2

TankMan ©   (2004-03-25 19:22:00) 

Вообще у меня стоит задача, чтобы в системе запускался только мой Shell, а если вдруг кто-то исправит system.ini, и поставит на загрузку Explorer, нужно чтобы запускалась программа через реестр RunServices, и перезагружала компьютер с исправлением нужных файлов.... так вот проблема состоит в том, что программа то запускается, но она не успевает ничего сделать, если сразу же при загрузке нажимать crl+alt+del и снимать все задачи кроме explorer-а как только они запускаются :(... т.е. программа при загрузке, во первый первым делом отключает функциональные клавиши, потом, прячет себя из taskmanager-а, но почему-то она этого не делает, скорее всего не успевает, хотя в месте с ней, в RunServices программ то почти и нет :(... что можно сделать чтобы ее нельзя было снять?
Вобщем-то есть проблама еще такая, что когда выбираешь эту программу в списке и нажимаешь кнопку чтобы ее завершить, винда сразу выдает запрос на ее "убийство" ТерминейтПроцессом, а не просто Close-ом, насколько я понимаю - это происходит из-за того, что нет окна, которому можно послать это сообщение, (я написал ее без окна и она просто рисует на экране сообщения), и поэтому она сразу же хочет убить его быстро, т.е. мне нужно каким-то образом обрабатывать сообщения, но как? у меня же нет окна :(


Alexis   (2004-03-28 17:10:00) [21]

Если я тебя правильно понял, то проблема лишь в том, что до того, как твоя программа успеет выполнить все действия в системе, ее можно успетьубить через Alt-Ctrl-Del.Может первым делом твоя программа должна отключать клаву и мышь, затем все остальное и наконец включать клаву и мышь снова.Тогда особо проворные юзера не нажмут Alt-Ctrl-Del со всеми вытекающими отсюда последствиями :)


TankMan   (2004-03-27 14:59:00) [22]

Ну вы опять не поняли, дело в том, что закрытие программы можно обработать только лишь в том случае, когда окну проги приходит сообщение WM_CLOSE или что-то в этом духе, а тут нечему посылать такое приложение, поэтому-то он и сразу же предлагает грохнуть программу процедурой TerminateProcess, а эта процедура никого вообще не спрашивает (кроме пользователя),"убивать" приложение или нет... возможно можно как-то сделать так, чтобы приложение не отображалось в списке приложение по умолчанию, т.е. сразу же после запуска?


Плохиш   (2004-03-26 18:14:00) [23]


> Dennis S ©   (26.03.04 18:05) [7]
> Если уж нужно, чтобы прогу нельзя было убить вооще в 99,9%
> случаев сделай легко: на закрытии программы сделай запуск
> копии этой же программы (т.е. самой себя).

Кто-нибуть удосуживается сообщить какой-либо программе, что он её сейчас грохнет? ;-)


Dennis S   (2004-03-26 18:05:00) [24]

Если уж нужно, чтобы прогу нельзя было убить вооще в 99,9% случаев сделай легко: на закрытии программы сделай запуск копии этой же программы (т.е. самой себя).


TankMan   (2004-03-26 17:30:00) [25]

Я опять не все рассказал,т.к. у меня какраз нет главного окна и поэтому у меня и есть весь код в dpr... больше впринципето и не где получается :)...(во всяком случае без каких-либо заморочек), я и запрещаю, а еще есть проверка на наличие собственного процесса в списке процессов для того чтобы всегда держать запущенными еще 2 процесса этой же программы... но этого она ничего не успевает сделать :(((


bartram   (2004-03-26 09:45:00) [26]

Вообще есть специадьное сообщение которое Windows посылает при изменении System.ini всем приложениям, это сообщение можно отловить ну а дальше дело техники !!


Cobalt   (2004-03-26 08:57:00) [27]

Запрещай С+А+Д в самом начале проги, т.е. в *.dpr
Убить её нельзя. А скрыть в Win9* можно - тоже в FAQ


TankMan   (2004-03-26 01:03:00) [28]

... нет вы меня не поняли, программа и так это делает - вобщем ход действий программы - запуск проги ->выставление высокого приоритета->запрещение С+А+Д-> скрытие проги из TaskMng->отрисовка сообщения->выставление в реестре и system.ini нужных данных->перезагрузка.
Но проблема в том, что при старте Ехплорера, быстро нажимая К+А+Д, можно увидеть программу в списке и убить ее легко :(... и я все не знаю, как сделать так тчобы ее нельзя было убить или ее небыло видно :(


Prov   (2004-03-25 21:32:00) [29]

чтобы не изменили System.ini, скрой диски в проводнике, хотя это не спасает тебя при использовании таких файловых менеджеров, как Far, или WindowsCommander ^))


Cobalt   (2004-03-25 19:30:00) [30]

Чтобы тебя не убили через  crl+alt+del, надо его запретить (см. FAQ)


Страницы:   1 2

Наверх

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