Voilà comment lancer un exe à partir de ton programme C (MFC) :
PROCESS_INFORMATION Process = {0};
STARTUPINFO Start = {0};
Start.cb = sizeof(STARTUPINFO);
Start.lpReserved = NULL;
Start.lpReserved2 = NULL;
Start.cbReserved2 = 0;
Start.lpDesktop = NULL;
Start.dwFlags = 0;
// Lance process
int ReturnProcess = CreateProcess(NULL, _T("ton exe" ), NULL, NULL, TRUE, NORMAL_PRIORITY_CLASS, NULL, NULL, &Start, &Process);
// Vérifie si l'opération s'est bien déroulée
if (ReturnProcess == 0)
MessageBox("Erreur, impossible to run Process !", "Erreur", MB_OK + MB_ICONEXCLAMATION);
Ensuite tu peux attendre que le programme "client" ait terminé son job en vérifiant à intervalle régulier :
DWORD ReturnValue = WaitForSingleObject(Process.hProcess, 0);
Regarde l'aide cette fonction, tu peux spécifier un certain temps ou attendre jusqu'à ce qu'il ait terminé (INFINITE) si je me rappelle bien.
Quand ReturnValue = 0, le programme lancé est terminé.
Pour envoyer tes séquences de touches dans le programme tu peux employer plusieurs méthodes : l'une serait de simuler l'appui sur le clavier ou la souris (keybd_event et mouse_event). Cherche dans la doc.
Si tu trouves pas je te filerai quelques exemples.
Il y a peut être une méthode "plus propre" en récupérant le handle de l'appli. et en envoyant directement dans sa boucle de message les touches en question ...
@+
Flying