API Windows

Signaler
Messages postés
61
Date d'inscription
mercredi 24 mai 2006
Statut
Membre
Dernière intervention
19 janvier 2007
-
Messages postés
966
Date d'inscription
samedi 3 avril 2004
Statut
Membre
Dernière intervention
4 mars 2010
-
Bonsoir tout le monde
J'ai testé un petit prog qui à la fermeture de session doit lancer un exe. Quelqu'un saurait pourquoi il n'attend pas que l'exe se finisse avant de fermer ??????

Merci pour votre aide

LRESULT CALLBACK MainWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
  using namespace std;
char buf1[30];
string parameters = "2";
string rundll32 = "";
string myImg = ""; //Changez cette valeur pour l'image que vous voulez afficher
SHELLEXECUTEINFO execinfo;
memset(&execinfo, 0, sizeof(execinfo));
execinfo.lpFile = "c:\\monexe.exe";
execinfo.cbSize = sizeof(execinfo);
execinfo.lpVerb = "open";
execinfo.fMask = SEE_MASK_NOCLOSEPROCESS;
execinfo.nShow = SW_SHOWDEFAULT;
execinfo.lpParameters = parameters.c_str();


    switch (uMsg)
    {
       
        case WM_CREATE:
           return 0;


        case WM_QUERYENDSESSION :
            ShellExecuteEx(&execinfo);
            WaitForSingleObject(execinfo.hProcess, INFINITE);
            return 1;
            
               


        default:
            return DefWindowProc(hwnd, uMsg, wParam, lParam);
    }
}

 Laetitia

5 réponses

Messages postés
1403
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
11 janvier 2009
3
Salut laetitiavincent !

il n'attend pas la fin de l'exécution de l'exe car ShellExecute (ce qui lance l'exécutable), lance le processus et passe aussitôt à l'instruction suivante.

YOYO, @+.
"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"
Messages postés
61
Date d'inscription
mercredi 24 mai 2006
Statut
Membre
Dernière intervention
19 janvier 2007

D'accord mais WaitForSingleObject(execinfo.hProcess, INFINITE);  devrait scruter que execinfo n'est pas fini, non ? et donc bloquerait pour la suite ?
Sinon, je peux faire comment ?

 Laetitia
Messages postés
1403
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
11 janvier 2009
3
Houla j'avais pas vu le WaitForSingleObject !!!
Pas bien réveillé ce matin moi !
Là du coup je suis désolé mais je n'en sais absolument rien.
Bon courage !

YOYO, @+.
"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"
Messages postés
61
Date d'inscription
mercredi 24 mai 2006
Statut
Membre
Dernière intervention
19 janvier 2007

HIHI
Pas grave !! Il faut dire qu'il est tôt pour des informaticiens qui, normalement, travaille la nuit et dorme le jour !!!!!!!!!!!!!!!!!!!
Merci tout de meme de faire l'effort d'aider les autres
A plus

 Laetitia
Messages postés
966
Date d'inscription
samedi 3 avril 2004
Statut
Membre
Dernière intervention
4 mars 2010
4
Quelle est la valeur retournée par WaitForSingleObject ?