CreateProcess Sans afficher fenetre d'execution

Résolu
babylone2019 Messages postés 32 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 29 mars 2008 - 21 juin 2005 à 11:36
babylone2019 Messages postés 32 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 29 mars 2008 - 22 juin 2005 à 11:44
Bonjour,

Je lance une serie de script depuis mon programme.
Pour cela j'utilise :

PROCESS_INFORMATION pi;
STARTUPINFO si = {sizeof(si)};
si.dwFlags = STARTF_USESHOWWINDOW;
si.wShowWindow = SW_HIDE;
...
CreateProcess(0,cmdLine2, 0, 0, 0,CREATE_SUSPENDED, 0, 0, &si, &pi);
...
les scripts lancer sont des batchs ou des perls.

je souhaiterais que leur fenetre d'execution ne s'affiche pas.

Quelqu'un aurrais une solution?
Merci d'avance
A voir également:

12 réponses

cs_Xaviou Messages postés 154 Date d'inscription dimanche 1 avril 2001 Statut Membre Dernière intervention 2 octobre 2009 1
21 juin 2005 à 18:28
Essayes ceci:

CreateProcess(0,cmdLine2, 0, 0, 0,CREATE_SUSPENDED|DETACHED_PROCESS, 0, 0, &si, &pi);



C'est ce que j'avais utilisé (sans le CREATE_SUSPENDED) dans un prog
qui lançait des compressions de plusieurs dossiers avec le programme
dos "RAR.EXE".

Je ne voyais jamais la console, pour la simple et bonne raison que
celle-ci doit être explicitement créée par le processus s'il en veut
une (du moins, c'est ce que j'ai compris avec MSDN)
3
Zootella Messages postés 252 Date d'inscription vendredi 10 juin 2005 Statut Membre Dernière intervention 5 septembre 2006
21 juin 2005 à 11:54
system() n'affiche pas la fenetre je pense.
0
babylone2019 Messages postés 32 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 29 mars 2008
21 juin 2005 à 11:56
C'est ceque j'utilisais avant.
System m'affiche les fenetres.

Je commence à me demander si sa vientpas de mes script.
0
Zootella Messages postés 252 Date d'inscription vendredi 10 juin 2005 Statut Membre Dernière intervention 5 septembre 2006
21 juin 2005 à 12:04
c'est bien ça, system() n'affiche la fenetre que une milli seconde au début, donc ça doit être tes scripts.
0

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

Posez votre question
babylone2019 Messages postés 32 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 29 mars 2008
21 juin 2005 à 12:08
ben je veut bien mais il y a toujours le retour d'execution des fonctions qui s'affiche dans ces script , non?
exemple:

@echo off
net use z: [file://serveur/repertoire \\serveur\repertoire]

ce genre de script me renvoi toujours le resultat a l'ecran
0
Zootella Messages postés 252 Date d'inscription vendredi 10 juin 2005 Statut Membre Dernière intervention 5 septembre 2006
21 juin 2005 à 12:28
tu dois récuperer le résultat ?



tu peux mettre le résultat dans un fichier text :



"net use z: [file://serveur/repertoire \\serveur\repertoire] > test.txt"



Puis le lire depuis ton programme.
0
babylone2019 Messages postés 32 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 29 mars 2008
21 juin 2005 à 13:56
j'en ai pas vraiment besoin.

enfin si, mais juste le code d'erreur, pas tout le texte qui s'affiche.

Mais la on s'ecarte un peut du sujet.

A chaque commande lancer la fenetre dos s'ouvre.
Et moi je veut pas que sa se voit.

1) sa me bousille l'affichage de ma dialog
2) l'utilisateur risque de flipper à voir 15 fenetre qui s'ouvre et se referme aussi tot.
0
Zootella Messages postés 252 Date d'inscription vendredi 10 juin 2005 Statut Membre Dernière intervention 5 septembre 2006
21 juin 2005 à 14:43
system("start "un_titre" test.bat");



HWND hWnd = FindWindow(0, "un_titre");



ShowWindow(hWnd, SW_HIDE);





Faudra esseyer.
0
HCJarod Messages postés 221 Date d'inscription mardi 12 août 2003 Statut Membre Dernière intervention 11 décembre 2008 1
21 juin 2005 à 15:02
Chaque problème a sa solution. S'il n'y a pas de solution c'est qu'il n'y a pas de problème.
a+
0
babylone2019 Messages postés 32 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 29 mars 2008
21 juin 2005 à 16:09
ben le problem c'est que ces saleter de fenetre dos s'affiche par dessus ma suberbe progress bar et les commentaire qui vont avec.

Mais sinon le programme tourne parfaitement....
Enfin plus ou moin.... ;-)
0
HCJarod Messages postés 221 Date d'inscription mardi 12 août 2003 Statut Membre Dernière intervention 11 décembre 2008 1
22 juin 2005 à 09:23
Chaque problème a sa solution. S'il n'y a pas de solution c'est qu'il n'y a pas de problème.
a+
0
babylone2019 Messages postés 32 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 29 mars 2008
22 juin 2005 à 11:44
Bon c presque bon,

CreateProcess(0,cmdLine2, 0, 0, 0,CREATE_SUSPENDED|DETACHED_PROCESS, 0, 0, &si, &pi);

lors que je lance un net use grace a sa j'ai plus le retour "command success..." qui s'affiche. donc sa c bien.

Il me reste quant meme quelque script qui continue a afficher de retour console mais bon sa doit venir d'autre chose.

Merci a tous pour votre aide.
0
Rejoignez-nous