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

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

Marsh Posté le 13-09-2012 à 10:54:35    

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

Reply

Marsh Posté le 13-09-2012 à 10:54:35   

Reply

Marsh Posté le 13-09-2012 à 11:20:13    

CreateProcess ou CreateProcessEx sont tes amis.


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

---------------
last.fm
Reply

Marsh Posté le 13-09-2012 à 12:10:36    

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 ?

Reply

Marsh Posté le 13-09-2012 à 15:35:29    

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
Reply

Marsh Posté le 13-09-2012 à 16:03:49    

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.    }

Reply

Marsh Posté le 13-09-2012 à 16:19:39    

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
Reply

Marsh Posté le 13-09-2012 à 18:58:23    

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  
 


Reply

Marsh Posté le 13-09-2012 à 19:31:16    

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


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 13-09-2012 à 19:36:09    

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.

Reply

Marsh Posté le 14-09-2012 à 13:26:03    

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
Reply

Marsh Posté le 14-09-2012 à 13:26:03   

Reply

Marsh Posté le 14-09-2012 à 15:54:57    

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.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed