Форум: "Основная";
Текущий архив: 2003.05.26;
Скачать: [xml.tar.bz2];
ВнизРезультат работы программы Найти похожие ветки
← →
RoadStar (2003-05-14 14:27) [0]Как узнать приложению, которое запустило дочернее от своего имени, результат его работы?
Мне просто нада знать, как оно завершилось (с каким кодом завершения).
Заранее благодарен.
← →
Dms (2003-05-14 14:31) [1]есть куча способов взаимодействия процессов
- сообщения
- сокеты
- файлы, проецируемые в память
...
выбирай, что тебе подойдет
(думаю, это будут сообщения :))
← →
RoadStar (2003-05-14 14:42) [2]
> Dms
Аха, и как нада послать сообщение родителю?
Наверна в OnClose?
← →
MBo (2003-05-14 14:45) [3]после CreateProcess (pi-_PROCESS_INFORMATION)
GetExitCodeProcess(pi.hProcess, Code)
после WaitForSingleObject (или как ты там ждешь), но пока не закрыл дескриптор дочернего процесса
← →
Dms (2003-05-14 14:45) [4]смотри сам
← →
Dms (2003-05-14 14:47) [5]
> Как узнать приложению, которое запустило дочернее от своего
> имени, результат его работы?
извини, я запутался в твоем вопросе :(
см. MBo © (14.05.03 14:45)
← →
RoadStar (2003-05-14 16:30) [6]
> MBo
А каким образом записать в (pi-_PROCESS_INFORMATION)
дочернему процесу какое либо число (значение)?
Ответь пожалуйста!
← →
MBo (2003-05-14 16:40) [7]Если дочернее пишется тобой, то системную переменную ExitCode устанавливай
← →
RoadStar (2003-05-14 17:22) [8]
> MBo
А каким образом записать в (pi-_PROCESS_INFORMATION)
дочернему процесу какое либо число (значение)?
Ответь пожалуйста!
← →
RoadStar (2003-05-14 17:24) [9]
> MBo
Спасибки!
← →
RoadStar (2003-05-14 17:29) [10]
> MBo
А почему у меня всегда он нулевой приходит?
← →
MBo (2003-05-14 17:32) [11]ExitCode ставишь?
Я этим не пользовался со времен DOS
← →
RoadStar (2003-05-14 17:34) [12]
> MBo
Та отож!
А нада позарез!
А может при выходе процесс сам обнуляет эту переменную (вроде все прекрасно, ничего не приключилось...) ?...
← →
MBo (2003-05-14 17:37) [13]Нет, проверил - все нормально, что в ExitCode ставишь, то и получаешь
← →
RoadStar (2003-05-14 17:50) [14]
> MBo
Чета у меня не выходит!
Помоги, а?
← →
MBo (2003-05-14 18:03) [15]
procedure TForm1.Button1Click(Sender: TObject);
var
SI: TStartupInfo;
PI: TProcessInformation;
Code:DWord;
begin
FillChar(SI, Sizeof(SI), #0);
SI.cb := Sizeof(SI);
SI.dwFlags := STARTF_USESHOWWINDOW;
SI.wShowWindow := 0;
if not CreateProcess(nil,"project2.exe",nil,nil,false,0,nil,nil,SI,PI) then
Caption:="Failed"
else begin
WaitforSingleObject(PI.hProcess, INFINITE);
GetExitCodeProcess(PI.hProcess, Code);
CloseHandle( PI.hProcess );
CloseHandle( PI.hThread );
Caption:=inttostr("Code: "Code);
end;
end;
← →
MBo (2003-05-14 18:04) [16]так:
Caption:="Code: "+inttostr(Code);
← →
RoadStar (2003-05-14 18:07) [17]
> MBo
А в "project2.exe" как ты делаешь?
Я просто присваивал
ExitCode := $FFFF;
На вызывающей стороне:
WaitForSingleObject(lpProcessInformation.hProcess, INFINITE);
GetExitCodeProcess(lpProcessInformation.hProcess, R);
R всегда ноль, чеб я не писал в ExitCode?
Где грабли???
← →
MBo (2003-05-14 18:13) [18]в OnCreate формы project2
ExitCode:=3;
и все - после закрытия второго проекта в caption первого появляется 3.
У тебя второй-то запускается?
← →
RoadStar (2003-05-14 18:16) [19]
> MBo
Ну да, прога висит себе, висит, а по определенной кнопке нада сообщить, что (ну неважно шо). И все! Тупо, но нифига не получается!
Помоги, пожалуйста!
← →
RoadStar (2003-05-14 18:18) [20]Даже код всуну:
procedure TListChangesForm.Button1Click(Sender: TObject);
begin
ExitCode := $FFFF;
Close;
end;
← →
MBo (2003-05-14 18:25) [21]это все, что есть во втором.
procedure TForm1.Button1Click(Sender: TObject);
begin
ExitCode:=3;
Application.Terminate;
end;
← →
RoadStar (2003-05-14 18:28) [22]
> Application.Terminate;
Вот в чем прикол!!!
А я close делал!
Спасибо, МВо!
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.05.26;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.007 c