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

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

Процессы


zxas ©   (2002-09-02 14:01:00) 

Вот такой вопрос (просьба отвечать содержательно):
Есть процесс. Когда пользователь его убивает, надо создать новый процесс, передать данные старого процесса новому и запустить новый процесс. Знаю что надо использовать CreateProcess, но нужно поподробнее расписать как и что делать. Можно даже привести кусок кода. Предлагать по-другому не дать юзеру убить процесс не надо.
Заранее благодарен


R_F$29{n}xp   (2002-09-07 11:01:00) [1]

Народ у меня такая же проблемка! OnClose не сработает когда убивают процесс! Делать второй процесс, который следит за приложением - по таймеру что-ли? А то если постояннол будет проверять тормоза будут. И вообще можете поподробней написать код или часть его.


zxas   (2002-09-07 01:10:00) [2]

Что значит какие данные. Все данные принадлежацие процессу в сегменте данных которые находятся. Т е сделать полную копию убитого процесса.


Malder   (2002-09-03 02:27:00) [3]

zxas, для запуска новой копии приложения в событии формы OnClose пиши

winexec(Appication.exename);

А вот насчет передать данные... смотря какие данные ты хочешь передавать...


QuickeneR   (2002-09-02 20:37:00) [4]

>Asteroid
Если основное время процессы будут проводить внутри WaitForSingleEvent, то прой грузится не будет.


Asteroid   (2002-09-02 14:51:00) [5]

> Antonius © (02.09.02 14:48)
Получится, куда ж он денется :) Только это уже типа нехорошей проги, грузящей проц и не дающей юзеру работать, т.н. WinGlucker :))


Antonius   (2002-09-02 14:48:00) [6]

процесс может и не знать, что его убивают. Кончина наступит неожиданно :) нужен еще один процесс, который будет следить за первым, и в случае его кончины - запускать повторно. Но злой (и продвинутый) юзер может убить сначала 2-ой процесс, а затем 1-ый. Поэтому нужен 3-ий - пусть следит за вторым, а заодно и за первым до кучи :).
Хотя.... достаточно что-бы 1-ый следил за вторым, а второй за первым. Думаю получиться :)


Asteroid   (2002-09-02 14:45:00) [7]

А слабо использовать WinExec или ShellExecute?
Вроде этого:


...
procedure TForm1.Destroy( Sender: TObject );
begin
WinExec( "<filename+parm>", SW_SHOW );
end;
...


Наверх

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