Уважаемые авторы вопросов! Большая просьба сообщить о результатах решения проблемы на этой странице. Иначе, следящие за обсуждением, возможно имеющие аналогичные проблемы, не получают ясного представления об их решении. А авторы ответов не получают обратной связи. Что можно расценивать, как проявление неуважения к отвечающим от автора вопроса.
08-08-2005 15:26
Конечно, с Диспетчером можно "договориться", но как быть с такими программами как WinKiller и иже с ним?
To sCORpio:
Твой вариант - единственный, который стоит использовать. Так работают многие программы, например IBServer, nnCron (в том числе и в режиме сервиса! но стоит сделать галочку, чтобы этот режим можно было выключить, в nnCron русской версии его называют "непотопляемый режим"), EyesKeeper и другие.
Возможно, я ошибаюсь и все что написано ниже - полный бред, но... Когда диспетчер задач закрывает приложение, он сначала пытается договориться с ней по-хорошему (т.е. пытается закрыть ее штатными средствами - типа WM_CLOSE, точно не помню). Смысел в следующем: когда диспетчер присылает нам WM_CLOSE, мы не спорим, соглашаемся, и разрешаем себя закрыть. А где-нибудь в Form.OnClose запускаем новый экземпляр своей проги. Т.е. один экземпляр выгружается, но при этом сразу загружается новый.
Если вы заметили орфографическую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter. Функция может не работать в некоторых версиях броузеров.