Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.05.26;
Скачать: CL | DM;

Вниз

Результат работы программы   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.018 c
1-83520
exo
2003-05-13 15:24
2003.05.26
как сделать button активным постоянно?


3-83419
AlexVitko
2003-05-06 18:25
2003.05.26
ПОИСК В БООЛЬШОЙ БД


3-83374
SergeyZZZ
2003-05-06 10:56
2003.05.26
D5, MS SQL 2000


4-83805
mikeevteev
2003-02-17 21:07
2003.05.26
Как создать большой хинт для tray icon?


4-83786
den_c
2003-03-25 13:25
2003.05.26
Как получить Handle главного окна приложения в котором моя DLL