Salut


Je doit passer un fichier bitmap « A.bmp » à un exécutable x.exe par un appel de ce dernier, x.exe va me traiter le fichier « A.bmp » et me créer un autre fichier bitmap« B.bmp » que je doit charger dans l’Image4 de ma Form1, j’utilise pour cet appel la fonction ShellExecute; sachant que : x.exe prend un temps pour s’exécuter . Ce temps ma poser un problème pour cela je me suis dit puisque la création de B.bmp implique la fin de l’exécution de x.exe et pour ne pas laisser l’utilisateur attendre sans réponse, j’ai pensé alors à utiliser un ProgressBar qui s’incrémente tant que le fichier B.bmp n’a pas été créer. une foie créer, le fichier B.bmp pourra être chargé dans Image4 .

Voici le code qui résume ce que j’ai raconté :
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
{
//suppression du fichier B  avant d’appeler l’exécutable 
if (FileExists("B.bmp"))
      DeleteFile("B.bmp");
// Apel de l’exécutable
ShellExecute(Form1->Handle,"Open","C: \\x.exe",NULL,"C:\\",SW_HIDE);
  ProgressBar1->Min = 0;
  ProgressBar1->Max=10000;
int  i=  ProgressBar1->Min;
//Vérifier est ce que le fichier B.bmp a été bien créer autrement dit : est ce que l’exécution  de x ca été terminé ?? while(! (FileExists("B.bmp")))
  {   ProgressBar1->Position = i;
        i++;
    }
//  B maintenant est créer
ProgressBar1->Position =   ProgressBar1->Max;
Image4->Picture->Bitmap->LoadFromFile("B.bmp");
}
Mon problème est que je ne peux pas charger le bitmap B dans l’Image ; à l’exécution quand le ProgressBar est mis au Max un message d’erreur me dit « impassible d’ouvrir le fichier ‘D:\\B.bmp’ ;
Que dois je faire ?
Est-ce qu’il ya d’autres solutions pour tester que x.exe a terminé son exécution ?
Remarque : le temps d’exécution de x.exe vari selon le fichier A.bmp

Merci d’avance