Subsystem console et windows

draluorg Messages postés 625 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 25 novembre 2010 - 29 déc. 2007 à 00:06
draluorg Messages postés 625 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 25 novembre 2010 - 29 déc. 2007 à 21:12
Salut a tous,

J'ai une appli windows a laquelle j'aimerais bien mettre la possibilite d'etre executer en ligne de commande avec des parametres.

Le probleme est que si je compile en subsystem=Windows j'ai pas acces au stdout, et si je compile en subsystem=console j'ai la fenetre console qui s'ouvre automatiquement en plus de ma fenetre :(

Ma question est donc comment faire pour n'ouvrir cette fenetre que apres que j'ai verifié s'il y avait des arguments ?

merci d'avance pour votre aide

++

Quand on pose une question on est con 5 minutes,
Quand on ne la pose pas on le reste toute sa vie...

10 réponses

SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
29 déc. 2007 à 00:16
int __stdcall WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)

Ce paramètre contient la ligne de commande.

C++ (@++)<!--
0
draluorg Messages postés 625 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 25 novembre 2010
29 déc. 2007 à 00:19
Salut,

merci mais c'est pas vraiment ca mon prob, je sais comment recuperer la ligne de commande, c'est juste qu'en mode graphique j'ai pas acces au stdout et en mode console la console s'ouvre avant la moindre verification donc je me retrouve avec la console plus ma fenetre principale.

++

Quand on pose une question on est con 5 minutes,
Quand on ne la pose pas on le reste toute sa vie...
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
29 déc. 2007 à 01:42
Je ne comprend pas vraiment ce que tu souhaites faire mais pour fermer une console, on utilise la fonction FreeConsole.

C++ (@++)<!--
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
29 déc. 2007 à 11:14
stdout, utile à quoi dans une appli Windows ?

ciao...
BruNews, MVP VC++
0

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

Posez votre question
cs_juju12 Messages postés 966 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 4 mars 2010 4
29 déc. 2007 à 13:27
En tous cas, si tu veux utiliser une console avec une appli GDI, tu utilises AllocConsole() et consorts; mais à ce moment là, plus de stdout : prends WriteConsole() etc...
0
draluorg Messages postés 625 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 25 novembre 2010
29 déc. 2007 à 14:26
Salut a tous,

Eh bin utile pour pouvoir utiliser le tool en ligne de commande...
Je cherche a le faire depuis le stdout afin que l'utilisateur ait le choix de rediriger la sortie dans la console ou dans un file...

merci pour vos reponses

++

Quand on pose une question on est con 5 minutes,
Quand on ne la pose pas on le reste toute sa vie...
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
29 déc. 2007 à 14:39
Alors faire un prog GUI (non console) et suivant params tu fais un AllocConsole() ou non et sera CreateFile et WriteFile pour ce que tu appelles rediriger sinon affichage console.

ciao...
BruNews, MVP VC++
0
draluorg Messages postés 625 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 25 novembre 2010
29 déc. 2007 à 15:15
Eh ok, c'est bien une solution du genre que je veux mettre en place, mais CreateFile(?) quel fichier ? quel est le fichier pointé par stdout ?

Sinon je viens de remarquer que si je tape un monapp.exe hello>MonFile avec une appli GUI j'ai bien acces au stdout, mais pas si je n'indique pas de redirection.. bizare...

Quand on pose une question on est con 5 minutes,
Quand on ne la pose pas on le reste toute sa vie...
0
cs_juju12 Messages postés 966 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 4 mars 2010 4
29 déc. 2007 à 19:21
Pour avoir un handle sur la console utilisable avec WriteFile :
GetStdHandle(STD_OUTPUT_HANDLE);
0
draluorg Messages postés 625 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 25 novembre 2010
29 déc. 2007 à 21:12
Eh oui je sais, mais ce handle n'est pas valide dans une appli GUI!
Enfin si mais seulement si l'utilisateur redirige le flux de sortie vers un fichier.
Sinon ca ne marche pas :(

++

Quand on pose une question on est con 5 minutes,
Quand on ne la pose pas on le reste toute sa vie...
0
Rejoignez-nous