Dans mon application, j'utilise des executables (tar, gzip). Je voudrais les lancer avec CreateProcess. J'ai d'abord essayé en écrivant le batch suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
cd..
cd..
C:
cd Documents and Settings\Administrator\Desktop\
"F:\Project\tar" -cv --file=anim.tar azipper*
"F:\Project\gzip" -9 < anim.tar > anim.tgz
del anim.tar
et en le lancant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
STARTUPINFO         siStartupInfo;
PROCESS_INFORMATION piProcessInfo;
 
memset(&siStartupInfo, 0, sizeof(siStartupInfo));
memset(&piProcessInfo, 0, sizeof(piProcessInfo));
siStartupInfo.cb = sizeof(siStartupInfo);
if(CreateProcess("lBatchPath",
                     NULL,0,0,FALSE,
                     CREATE_DEFAULT_ERROR_MODE,0,0,                              
                     &siStartupInfo,&piProcessInfo) == FALSE)
{
// erreur
}
Ca marche bien, mais Pendant que le batch tourne, mon appli ne répond plus (alors que n'importe quelle autre application qui tourne sur la machine en meme temps répond.) Comment faire pour découpler le processus lancé de mon appli pour que celle ci ne plante plus.

Par ailleurs, j'aimerai utiliser une autre méthode que les batches, peut etre en lancant tar et gzip directement avec CreateProcess, mais ca ne marche pas...


Merci pour votre aide