CreateProcess Sans afficher fenetre d'execution [Résolu]

Messages postés
32
Date d'inscription
mercredi 18 mai 2005
Dernière intervention
29 mars 2008
- - Dernière réponse : babylone2019
Messages postés
32
Date d'inscription
mercredi 18 mai 2005
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
Afficher la suite 

Votre réponse

12 réponses

Meilleure réponse
Messages postés
154
Date d'inscription
dimanche 1 avril 2001
Dernière intervention
2 octobre 2009
3
Merci
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)

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 106 internautes ce mois-ci

Commenter la réponse de cs_Xaviou
Messages postés
252
Date d'inscription
vendredi 10 juin 2005
Dernière intervention
5 septembre 2006
0
Merci
system() n'affiche pas la fenetre je pense.
Commenter la réponse de Zootella
Messages postés
32
Date d'inscription
mercredi 18 mai 2005
Dernière intervention
29 mars 2008
0
Merci
C'est ceque j'utilisais avant.
System m'affiche les fenetres.

Je commence à me demander si sa vientpas de mes script.
Commenter la réponse de babylone2019
Messages postés
252
Date d'inscription
vendredi 10 juin 2005
Dernière intervention
5 septembre 2006
0
Merci
c'est bien ça, system() n'affiche la fenetre que une milli seconde au début, donc ça doit être tes scripts.
Commenter la réponse de Zootella
Messages postés
32
Date d'inscription
mercredi 18 mai 2005
Dernière intervention
29 mars 2008
0
Merci
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
Commenter la réponse de babylone2019
Messages postés
252
Date d'inscription
vendredi 10 juin 2005
Dernière intervention
5 septembre 2006
0
Merci
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.
Commenter la réponse de Zootella
Messages postés
32
Date d'inscription
mercredi 18 mai 2005
Dernière intervention
29 mars 2008
0
Merci
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.
Commenter la réponse de babylone2019
Messages postés
252
Date d'inscription
vendredi 10 juin 2005
Dernière intervention
5 septembre 2006
0
Merci
system("start "un_titre" test.bat");



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



ShowWindow(hWnd, SW_HIDE);





Faudra esseyer.
Commenter la réponse de Zootella
Messages postés
221
Date d'inscription
mardi 12 août 2003
Dernière intervention
11 décembre 2008
0
Merci
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+
Commenter la réponse de HCJarod
Messages postés
32
Date d'inscription
mercredi 18 mai 2005
Dernière intervention
29 mars 2008
0
Merci
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.... ;-)
Commenter la réponse de babylone2019
Messages postés
221
Date d'inscription
mardi 12 août 2003
Dernière intervention
11 décembre 2008
0
Merci
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+
Commenter la réponse de HCJarod
Messages postés
32
Date d'inscription
mercredi 18 mai 2005
Dernière intervention
29 mars 2008
0
Merci
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.
Commenter la réponse de babylone2019

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.