WaitForSingleObject

Résolu
pneau Messages postés 258 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 27 octobre 2010 - 12 févr. 2008 à 15:09
pneau Messages postés 258 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 27 octobre 2010 - 12 févr. 2008 à 16:50
Bonjour à tous (et à toutes...)

bref, j'ai un probleme... sinon, à quoi servirait ce post
j'ai une appli VB 6... Dans cette appli, l'utilisateur a la possibilité, via un bouton,  de lancer l'installation de MSDE 2000.
Le package de cette appli est disponible dans un dossier tout à fait accessible.
Le traitement qui est fait derriere ce bouton est le suivant :
ReturnValue = CreateProcessA(vbNullString, CmdLine, 0, 0, 1, NORMAL_PRIORITY_CLASS, 0, vbNullString, start, proc)
ReturnValue = WaitForSingleObject(proc.hProcess, INFINITE)

la variable "cmdLine" contient la commande  à exécuter pour lancer l'installationde MSDE : ex : C:\Tools\MSDE\Setup.exe

l'installation démarrer bien. Mais,....L'installation se bloque à un moment donné et attend ...
Après plusieurs tests j'ai réussi à déterminer que la commande "WaitForSingleObject" de mon appli appelante bloquait l'installation de MSDE....
Pourqui ?, pourquoi ? je n'en sais rien... il s'agit bien de 2 process différents... l'un attendant simplement que le second soit terminé pour continuer à bosser.
si j'enlève l'instruction WaitForSingleObject de mon code... l'install se déroule jusqu'au bout sans problème?
mais bien sur, j'ai besoin de savoir quand cette install est terminée...

donc voilà, j'aimerais savoir ce que je n'ai pas fait ou ce que j'ai mal fait pour en arriver la...
si quelqu'un a une idée ?

Précisions... on me demande d'installer MSDE et pas SQL Express 2005
Je ne souhaite pas scanner le HDD à la recherche d'un éventuel fichier log qui me donnerait le résultat de l'installation.

merci d'avance pour votre aide....

Pat

 Don't Worry , Be Happy

<hr />lorsque le problème est résolu, pensez Réponse Acceptée

5 réponses

pneau Messages postés 258 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 27 octobre 2010 5
12 févr. 2008 à 16:11
re tous...
je pense avoir trouvé...
il s'agit d'un problème référencé chez MS à cette adresse

merci renfield pour ton aide...

Pat

 Don't Worry , Be Happy

<hr />lorsque le problème est résolu, pensez Réponse Acceptée
3
pneau Messages postés 258 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 27 octobre 2010 5
12 févr. 2008 à 16:50
re, re
voilà le code que j'ai mis en lieu et place de WaitforSingleObject.. Si cela peut servir à quelqu'un....

   Do
               ReturnValue = MsgWaitForMultipleObjects(1, proc.hProcess, False, 1000, QS_ALLINPUT&)
        DoEvents
    Loop Until ReturnValue = WAIT_OBJECT_0

cordialement

Pat

 Don't Worry , Be Happy

<hr />lorsque le problème est résolu, pensez Réponse Acceptée
3
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
12 févr. 2008 à 15:54
tentes sans INFINITE.... en placant un TimeOut, et en bouclant....
(voir doc de WaiForSingleObject)

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
pneau Messages postés 258 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 27 octobre 2010 5
12 févr. 2008 à 16:06
salut Renfield
merci pour le conseil...
en mettant en place une boucle cela fini par passer mais le temps d'exécution de l'install du MSDE est rallongé...

au moins cela me dépanne...
n'aurais tu pas une autre idée pour permettre une install plus "fluide" ?

merci

Pat

 Don't Worry , Be Happy

<hr />lorsque le problème est résolu, pensez Réponse Acceptée
0

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

Posez votre question
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
12 févr. 2008 à 16:14
bon a savoir

bien joué, rares sont ceux qui recherchent quoi que ce siot

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
Rejoignez-nous