Merci pour ta réponse rapide breizhbugs, en effet ça fonctionne de ce que j'ai réussi à en faire (je ne suis malheureusement pas un expert).
Maintenant ma question devient "comment faire faire des choses au programme entre le moment où il est lancé et le moment où il se ferme". Dans mon cas ce sera 1) ouvrir un modele de simulation 2) faire tourner la simulation 3) enregistrer certaines choses 4) quitter.
Faut il que je contacte l'editeur du soft de simulation absolument ou à partir du logiciel puis je savoir comment s'appellent les fonctions internes et comment les lancer ?
Merci d'avance pour vos réponses
PS: je met dans la suite de ce message mon code test qui permet bien de lancer un process exterieur et d'attendre qu'il soit fini pour reprendre la boucle des instructions (j'ai fait ça sur windows media player pour le test)
///////////////////////////////////////////////////////// CODE
void etape3()
{
cout<<"etape 3 checked"<<endl;
}
void etape2()
{
CString cmdLine;
cmdLine= "\"C:\\Program Files\\Windows Media Player\\wmplayer.exe\""; // creer le chemin pour acceder au programme exterieur
PROCESS_INFORMATION processInformation = {0};
STARTUPINFO startupInfo = {0};
startupInfo.cb = sizeof(startupInfo);
int nStrBuffer = cmdLine.GetLength() + 50;
bool result =CreateProcess(NULL, cmdLine.GetBuffer(nStrBuffer), NULL, NULL, FALSE, NORMAL_PRIORITY_CLASS | CREATE_NO_WINDOW, NULL, NULL, &startupInfo, &processInformation);
cmdLine.ReleaseBuffer();
WaitForSingleObject( processInformation.hProcess, INFINITE ); // on detecte que le programme exterieur a fini
// on ferme les handles.
CloseHandle( processInformation.hProcess );
CloseHandle( processInformation.hThread );
cout<<"etape 2 checked"<<endl;
etape3();
}
void etape1(int &i)
{
i=i+1; // on valide que le tour a bien débuté et on incrémente le nombre de tours
cout<<"etape 1 checked"<<endl; // c'est fait
etape2(); // on passe à l'étape suivante
}
void main()
{
cout<<"c'est parti"<<endl;
int i=0;
while (i<10)
{
cout<<i;
etape1(i); // démarrage initiale (tour numéro 0) et boucle 10 fois
}
}