begin process at 2012 05 30 13:43:30
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Windows

 > 

Shell

 > 

Thread et appli


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Thread et appli

lundi 4 février 2008 à 18:46:33 | Thread et appli

fking

Bonjour,

Je suis en train de faire une petite appli qui doit lancer une autre appli win32 et attendre la fin d'un calcul pour reprendre la main.
J'ai donc utilisé un CreateProcess(NULL,(LPTSTR) MonProg.exe,0,DETACHED_PROCESS,FALSE,0,0,0,&siStart,&piInfo)...

Puis j'attends la fin en faisant un GetExitCodeProcess(piInfo.hProcess, &dwExitCode) pour fermer l'application (voir code + loin).        

- Le hic c'est que après son calcul l'appli win32 me demande si je veux quitter avec un messagebox et attend la réponse... Le dwExitCode est toujours STILL_ATIVE du coup! c'est balot !:)

Bref comment détecter que l'appli affiche son fichu messagebox et attend la réponse pour pouvoir la tuer avec un :  TerminateProcess(piInfo.hProcess, 0);  par exemple...

Une dernière question subsidiaire... apparament le
siStart.wShowWindow = SW_HIDE ne fonctionne pas car je vois l'appli s'ouvrir et m'affiche sa boite de dialogue... Pourquoi mystère ?

Bref je bloque un peu ...

Voici mon bout de code :
<code>
STARTUPINFO siStart;
siStart.dwFlags = STARTF_USESTDHANDLES;
siStart.wShowWindow = SW_HIDE
siStart.cb =sizeof(siStart);
 
PROCESS_INFORMATION piInfo;
memset(&siStart,0,sizeof(siStart));
memset(&piInfo,0,sizeof(piInfo));
DWORD dwExitCode;

 if(CreateProcess(NULL,(LPTSTR) MonProg.exe,0,DETACHED_PROCESS,FALSE,0,0,0,&siStart,&piInfo))/
 {
       GetExitCodeProcess(piInfo.hProcess, &dwExitCode); // Vérifie l'état du process avant la boucle
       while(dwExitCode == STILL_ACTIVE)
         {
         GetExitCodeProcess(piInfo.hProcess, &dwExitCode); // Regarde si le process est fini
         WxGauge1->SetValue(tempo++); // juste pour afficher l'avancement
         }
       CloseHandle(piInfo.hProcess);
       CloseHandle(piInfo.hThread);
}
</code>

Merci d'avance pour vos réponses,

-= FKING =-
lundi 4 février 2008 à 19:14:11 | Re : Thread et appli

SAKingdom

Membre Club
STARTUPINFO siStart;
siStart.dwFlags = STARTF_USESTDHANDLES;
siStart.wShowWindow = SW_HIDE
siStart.cb =sizeof(siStart);
 
PROCESS_INFORMATION piInfo;
memset(&siStart,0,sizeof(siStart)); // <- TU VIENS D'EFFACER TOUT CE QU'IL Y AVAIT DANS siStart
memset(&piInfo,0,sizeof(piInfo));

C++ (@++)

lundi 4 février 2008 à 19:14:12 | Re : Thread et appli

SAKingdom

Membre Club
Réponse acceptée !
STARTUPINFO siStart;
siStart.dwFlags = STARTF_USESTDHANDLES;
siStart.wShowWindow = SW_HIDE
siStart.cb =sizeof(siStart);
 
PROCESS_INFORMATION piInfo;
memset(&siStart,0,sizeof(siStart)); // <- TU VIENS D'EFFACER TOUT CE QU'IL Y AVAIT DANS siStart
memset(&piInfo,0,sizeof(piInfo));

C++ (@++)

lundi 4 février 2008 à 20:30:43 | Re : Thread et appli

fking

 Oups quel nouille!! j'avais pas fait gaffe ... Comme j'ai pas mal bidouiller cette partie j'ai du faire un copier/coller de trop !
Bref comme quoi c'est bien d'avoir un regard extérieur !! Merci SaKingdom !! Je pige mieux pourquoi le SW_HIDE marche pas du coup !!! MDR.

Par contre pour le reste i.e intercepter l'apparition du messagebox indiquant la fin du programme de calcul pour tuer le processus je sais pas trop comment faire.

Vos suggestions sont donc les biens venues.

-= FKING =-


Cette discussion est classée dans : appli, process, piinfo, sistart, dwexitcode


Répondre à ce message

Sujets en rapport avec ce message

Thread - Detached Process - Wx-Widgets - Actualisation [ par fking ] Bonjour à tous,Voila j'aimerais savoir comment raffraichir réguliérement mon appli Wx pendant qu'elle execute un thread.voici mon code : STARTUPINFO s [Xcode 3.0] attach to process [ par shirm ] Salut à tous,je debug un plug-in en utilisant "Attach to process" dans Xcode. Le debugging se passe très bien, pas de souci. Seulement, quand je stopp Fichier ouvert par autre process [ par RMEU ] Bonjour,Dans mon programme C/C++, je scanne une directory et j'ouvre certains fichiers que je trouve sur base du nom.  Je voudrais tester si ce fichie [SDL] process retourne -1073741819 [ par leptitced13 ] Bonjour a tous !Voila j'ai fait une fonction que je souhaite appeler dans mon main... Je compile: aucune erreurMais lorsque je run, il y a une erreur. process windows [ par foudetous ] Bonjour à tous, pouvez vous m'aidez sur : comment pourrais-je vérifier si un processus est en cours d'exécution et en me retournant un booléen, je pré Plantage application si TTimer actif lors la mise en veille windows [ par djvil ] Bonjour, tout est dans le titre en fait ! J'utilise un Ttimer qui est actif dès l'ouverture de l'application (appli faite sous Borland Builder 6.) Lo DeviceIoControl [ par raphui ] Salut a tous ! Je développe un " driver " , permettant de cacher un processus dans le Task Manager. Mon problème est que je n'arrive pas a envoyer u Recherche d'adresse mémoire d'un DLL dans un processus [ par empathe ] Bonjour, je recherche une fonction pouvant me retourner l'adresse mémoire Hexa d'ou est stocké une DLL d'un processus. le code: [code=cpp] #include Lister les process utilisant une dll [ par alphaone ] Bonjour, j'aimerai obtenir tout les pids utilisant une dll que je connait d'avance, j'ai donc trouvé ce code: http://www.cppfrance.com/code.aspx?ID=19 Argh ! Appli Win32 qui ne fonctionne que sur mon PC ! [ par Nehmonn ] Salut les vous [^^clinoeil1] sous Visual Studio 2008, j'ai développé 2 applis qui tournent sur mon PC mais, qui ne tournent pas ailleurs. Je les insta


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,122 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales