Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Aide | Shop Recherche
1777 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Visual C++ 2010 - Lancer un batch dos depuis un bouton

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Visual C++ 2010 - Lancer un batch dos depuis un bouton

n°2156592
antolionux
Posté le 13-09-2012 à 10:54:35  profilanswer
 

Bonjour,
 
Je m'initie à Visual C++ 2010 Express.
 
J'essaie de créer un bouton qui, lorsque je clique dessus doit lancer un batch DOS (*.cmd)
 
Comment puis-je faire cela ?
 
Merci pour votre aide

mood
Publicité
Posté le 13-09-2012 à 10:54:35  profilanswer
 

n°2156595
theshockwa​ve
I work at a firm named Koslow
Posté le 13-09-2012 à 11:20:13  profilanswer
 

CreateProcess ou CreateProcessEx sont tes amis.


Message édité par theshockwave le 13-09-2012 à 11:21:46

---------------
last.fm
n°2156605
antolionux
Posté le 13-09-2012 à 12:10:36  profilanswer
 

Il n'y a pas de complétion automatique de ce que l'on tappe comme dans Visual C# ? Bon pour le moment je n'arrive pas à implémenter ces méthodes ... ça ressemble plus à du code console qu'a du Winform, non ?

n°2156644
KLeMiX
Laisse pas trainer ton site
Posté le 13-09-2012 à 15:35:29  profilanswer
 

Code :
  1. Private Sub Command9_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles Command9.Click
  2.  Dim V_retour As Object
  3.    'UPGRADE_WARNING: Couldn't resolve default property of object V_retour. Click for more: 'ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?keyword="6A50421D-15FE-4896-8A1B-2EC21E9037B2"'
  4.    V_retour = Shell(V_BATPRD, AppWinStyle.NormalFocus)
  5. End Sub


Message édité par KLeMiX le 13-09-2012 à 15:35:46

---------------
www.pronovolley.fr Faites vos prono sur la ligue de Volley et défiez vos amis. Des cadeaux en fin d'année  www.levoll.fr
n°2156651
antolionux
Posté le 13-09-2012 à 16:03:49  profilanswer
 

Je ne comprend pas le code ci-dessus
 
voilà ce que j'ai et que je voudrais compléter pour exécuter un batch DOS

Code :
  1. private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
  2.     >>> Code à mettre ici pour lancer un batch DOS
  3.    }

n°2156656
theshockwa​ve
I work at a firm named Koslow
Posté le 13-09-2012 à 16:19:39  profilanswer
 

ah, tu fais du C++/CLI (CLX ou je ne sais plus quel nom étrange) :o
En tout cas, ca ne change rien.
 
1/ Comment est-ce que tu sais quel programme tu veux lancer ?
2/ Quels sont les arguments que tu peux vouloir influencer ?
3/ As-tu lu la doc que j'ai mis en liend ans mon premier post ?
4/ Qu'est-ce que tu ne comprends pas dedans ?
 


---------------
last.fm
n°2156685
antolionux
Posté le 13-09-2012 à 18:58:23  profilanswer
 

theshockwave a écrit :

ah, tu fais du C++/CLI (CLX ou je ne sais plus quel nom étrange) :o
En tout cas, ca ne change rien.
 
1/ Comment est-ce que tu sais quel programme tu veux lancer ?
J'ai toute une collection de scripts DOS avec des extentions *.cmd (une quarantaine environ)
Tous ces scripts réalisent des installations de logiciels de façon personnalisé.
Je voulais donc réaliser une appli windows en c++, une fenêtre avec un bouton et lorsque je clique sur le bouton ça devra juste exécuter le .cmd en question.
ça s'est juste pour me familiariser avec la façon de faire. Par la suite je compte faire en sorte que lors d'un appui sur un bouton, une série de scripts DOS soient exécuté séquentiellement car certains de mes logiciels ont des dépendances avec d'autres (ex: un lot d'appli mêtier qui nécessitent oracle ). Au final j'aurais ainsi une fenêtre Windows avec autant de bouton que de lot à installer séquentiellement (ex: bouton1 = oracle + appli_A + appli_B, etc ...)

2/ Quels sont les arguments que tu peux vouloir influencer ?

Pour reprendre l'exemple ci-dessus, par exemple si Oracle est déjà présent sur le PC, il ne faudra pas lancer le script associé, mais juste les appli A et B
 
3/ As-tu lu la doc que j'ai mis en liend ans mon premier post ?
J'ai commencé à la lire, mais ça ne me parle pas beaucoup. J'ai juste fait un peu de C très basique pendant mes études il y'a 15 ans de ça. Et je ne programme pas souvent avec ce genre de language évolué. J'ai juste touché un peu au C# en piquant des bout de code à gauche à droite et en les adaptant à ma sauce.
 
4/ Qu'est-ce que tu ne comprends pas dedans ?
je ne comprend pas tout cet enchevêtrement de code un peu barbare, même en regardant les exemples en bas de pages.
J'aurais en fait besoin de trouver un code déjà prêt et bien commenté ligne par ligne pour ce que j'envisage de faire ce qui me permettrait de comprendre comment ça marche.
C'est comme ça que j'ai fait pour appréhender un peu le Visual C#, sauf que là je ne trouve pas ce que je cherche  
 


n°2156688
gilou
Modérateur
Modzilla
Posté le 13-09-2012 à 19:31:16  profilanswer
 

Vu ce que tu veux faire, ce serait pas plus simple avec autoit?
A+,


---------------
Samantha Fish Rulez!     --    Iyashikei Anime Forever!    --    In umbra igitur pugnabimus. --
n°2156689
antolionux
Posté le 13-09-2012 à 19:36:09  profilanswer
 

Je connaissais pas ce système. Pour le coup ça peut être pas mal. Mais bon c'était histoire de me mettre au Visual C++ avec des choses simple.

n°2156764
theshockwa​ve
I work at a firm named Koslow
Posté le 14-09-2012 à 13:26:03  profilanswer
 

Le C++ n'est pas le langage le plus sympa pour faire des IHM (déjà parce qu'il n'y a rien dans son standard prévu pour ca).
 
Je t'ai dirigé vers CreateProcess parce que j'ai supposé que tu voulais faire une application qui soit pro, et c'est ce qui est le plus adapté si jamais tu veux, un jour, traiter la sortie de tes batchs (repérer des erreurs, par exemple, pour les afficher plus joliment dans ton interface)
Cela dit, si tu veux faire simple, tu peux utiliser des appels à system(). Ca devrait au moins te permettre de concevoir ton interface sans te poser de question.
 


---------------
last.fm
mood
Publicité
Posté le 14-09-2012 à 13:26:03  profilanswer
 

n°2156776
antolionux
Posté le 14-09-2012 à 15:54:57  profilanswer
 

J'ai testé AutoIT et c'est assez intuitif, j'ai déjà réussi à faire a peu près ce que je voulais avec même quelques fioritures. Côté C++, j'essayerai de voir avec system si j'y arrive mieux. Mais pour ce que j'ai besoin de faire AutoIT va super bien.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Visual C++ 2010 - Lancer un batch dos depuis un bouton

 

Sujets relatifs
VBA excel fonctionne en 2010 et plante en 97?(Cplex & C++) Comment résupérer les variables de base ?
[Access 2010]champ obligatoire si certains choixCommunication TCP Matlab-C++
[C / C++] Lire informations disque duraccess probléme visual basic recordset
int16_t[400] et char[400] xor en C[C][reseau] connection tcp (3 voies) raw socket
Probleme BatchTemporisation - Langage C - Launchpad MSP430
Plus de sujets relatifs à : Visual C++ 2010 - Lancer un batch dos depuis un bouton



Copyright © 1997-2016 Hardware.fr SARL (Signaler un contenu illicite) / Groupe LDLC / Shop HFR