ShellExecute bloquant

Signaler
Messages postés
584
Date d'inscription
mardi 26 novembre 2002
Statut
Membre
Dernière intervention
29 mai 2015
-
Messages postés
475
Date d'inscription
vendredi 27 juin 2003
Statut
Membre
Dernière intervention
20 septembre 2010
-
Bonjour,

je voudaris lancer un programme et ne récupérer la main que que celui-ci est terminé.
Y a-t-il une sorte de ShellExecute bloquant ?

Merci.

On ne force pas une curiosité, on l'éveille.
.................................................Daniel Pennac

6 réponses

Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
21
CreateProcess(...) fera ce que tu lui diras de faire.
BruNews, ciao...
Messages postés
584
Date d'inscription
mardi 26 novembre 2002
Statut
Membre
Dernière intervention
29 mai 2015

Wow, ça c'est de la fonction complexe!
Tu pourrais me dire dans quel paramètre du pramètre du paramètre se trouve l'option "bloquant" stp ?

On ne force pas une curiosité, on l'éveille.
.................................................Daniel Pennac
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
21
PROCESS_INFORMATION pi;
char szCmdLine[24];
STARTUPINFO si = {sizeof(si)};
DWORD dwExit;
strcpy(szCmdLine, "Enfant.exe");

// on sait si enfant finit correctement dans la minute
BOOL bok = CreateProcess(0, szCmdLine, 0, 0, 0,
CREATE_SUSPENDED, 0, 0, &si, &pi);
if(bok) {
ShowWindow(GetDlgItem(hDlg, IDCANCEL), SW_HIDE);
ResumeThread(pi.hThread);
CloseHandle(pi.hThread);
// attente 1 minute maxi
dwExit = WaitForSingleObject(pi.hProcess, 60000);
CloseHandle(pi.hProcess); if(dwExit WAIT_OBJECT_0) m_bExitChild 1;
PostMessage(hDlg, WM_COMMAND, IDCANCEL, 0);
}

Tu adaptes le dernier param de WaitForSingleObject a ta convenance.
BruNews, ciao...
Messages postés
584
Date d'inscription
mardi 26 novembre 2002
Statut
Membre
Dernière intervention
29 mai 2015

Super!
Du coup je vais pouvoir mettre une nouvelle source ce soir!

On ne force pas une curiosité, on l'éveille.
.................................................Daniel Pennac
Messages postés
49
Date d'inscription
mercredi 12 février 2003
Statut
Membre
Dernière intervention
5 septembre 2006

Comment faire pour utiliser ce principe pour ouvrir un fichier qui n'est pas sytématiquement un exécutable ?
(en fait, je voudrais que mon prog ouvre un fichier et puisse le fermer après un certain, or, quand on utilise ShellExecute, on n'a plus accès à la fenêtre qui s'est ouverte)..

Merci d'avance pour votre aide !
Messages postés
475
Date d'inscription
vendredi 27 juin 2003
Statut
Membre
Dernière intervention
20 septembre 2010

Serait il possible d'avoir l'équivalent du code suivant avec CreateProcess car j'ai eu beau essayé différentes facon pas moyen d'obtenir le bon résultat:

ShellExecute(hWnd,"open","C:\\chemin du\\soft.exe","C:\\chemin du\\fichier.ext","",SW_HIDE);

Merci