API Windows

laetitiavincent Messages postés 61 Date d'inscription mercredi 24 mai 2006 Statut Membre Dernière intervention 19 janvier 2007 - 12 janv. 2007 à 23:08
cs_juju12 Messages postés 966 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 4 mars 2010 - 13 janv. 2007 à 10:36
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

yoyo269 Messages postés 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 janvier 2009 2
13 janv. 2007 à 09:32
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 !"
0
laetitiavincent Messages postés 61 Date d'inscription mercredi 24 mai 2006 Statut Membre Dernière intervention 19 janvier 2007
13 janv. 2007 à 09:35
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
0
yoyo269 Messages postés 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 janvier 2009 2
13 janv. 2007 à 09:37
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 !"
0
laetitiavincent Messages postés 61 Date d'inscription mercredi 24 mai 2006 Statut Membre Dernière intervention 19 janvier 2007
13 janv. 2007 à 09:40
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_juju12 Messages postés 966 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 4 mars 2010 4
13 janv. 2007 à 10:36
Quelle est la valeur retournée par WaitForSingleObject ?
0
Rejoignez-nous