Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.012 c
1-83453
maker
2003-05-08 20:44
2003.05.26
Функции <=> Процедуры


6-83633
trash
2003-03-26 17:52
2003.05.26
NMHTTP с прокси без кеширования


11-83435
Sam Stone
2002-08-18 17:18
2003.05.26
ScrollBox


3-83407
gary5555
2003-05-06 18:00
2003.05.26
Нумерация строк с помощью RecNo.


3-83392
yurikon
2003-05-06 09:46
2003.05.26
SELECT, JOIN and GROUP BY





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский