Bonjour
J'ai un exécutable de type console qui réalise des calculs et qui à chaque étape de calcul terminée imprime sur l'écran une information du type #PROG xx (où xx représente un nombre entre 0 et 100)
Après quelque recherche j'ai trouvé ce code qui me permet d'exécuter mon programme de calcul.
J'aimerai savoir maintenant comment je peux récupérer les information de progression qui sont envoyé par le programme de calcul.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 procedure TForm1.exec; var StartupInfo: TStartupInfo; ProcessInfo: TProcessInformation; CommandLine: {$IFDEF UNICODE}WideString{$ELSE}string{$ENDIF}; begin CommandLine := '"calcullong.exe"'; ZeroMemory(@StartupInfo, SizeOf(StartupInfo)); StartupInfo.cb := SizeOf(StartupInfo); if CreateProcess(nil, PChar(CommandLine), nil, nil, FALSE, 0, nil, nil, StartupInfo, ProcessInfo) then begin repeat Application.ProcessMessages; until WaitForSingleObject(ProcessInfo.hProcess, 200) <> WAIT_TIMEOUT; CloseHandle(ProcessInfo.hProcess); CloseHandle(ProcessInfo.hThread); end else RaiseLastOSError; end;
Je me doute qu'il faille mettre une instruction dans cette boucle mais je n'ai pas trouvé laquelle.
Si vous avez des idées je suis preneur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 repeat Application.ProcessMessages; //récupération des info de progression until WaitForSingleObject(ProcessInfo.hProcess, 200) <> WAIT_TIMEOUT;
Partager