-
ShellExecute lancer .bat
Bonjour à tous,
Je souhaiterai faire que mon programme lance une commande (vcbMounter.exe (VMware)) et je ne sais pas comment cela se fait.
J'ai testé directement avec system(maCommande.c_str()), cela semble ne pas fonctionner et en plus je vois ma console disparaitre aussitot qu'elle est apparut.
J'ai donc essayé avec ShellExecute mais la le probleme est que je n'arrive pas à faire executer le fichier .bat que j'ai crée pour l'occasion (et qui contiendra le vcbmounter au final).
Voici la ligne contenant le ShellExecute:
ShellExecute (NULL, "open", "cmd.exe", "c:\\test.bat", 0, SW_SHOW);
Au résultat j'obtiens une console qui s'ouvre et qui me donne la main mais en aucun cas n'execute les commandes du .bat.
Donc voilà je vous remerci de votre aide à venir :lol:
-
As-tu testé ceci :
Code:
ShellExecute (NULL, NULL, "c:\\test.bat",NULL, NULL, SW_SHOW);
-
Merci cela fonctionne sans problème mais je voudrais que la console reste ouverte tant que je souhaite ;)
En fait je voudrais genre un truc qui fasse un system("pause") mais cela ne fonctionne pas si je mets ça.
Voilà je te remerci malgrès tout de ton aide:D
-
ShellExecute lance un programme qui devient independant du programme qui le lance, c'est l'interet. La fonction retourne directement apres le lancement du prog.
Donc impossible d'avoir l'effet d'un system('pause'); qui lui, est bloquant.
-
Mais on peut faire un ShellExecuteEx() avec le flag NoCloseProcess, pour pouvoir ensuite faire un WaitForSingleObject() sur ledit processus...
-
Merci à tous,
Le problème venant du fait que j'aimerai recupérer l'état de la console une fois la commande lancée car, je lance un snapshot de VMware et donc cela peut durer un certain temps ;)
Voila donc si il était possible de comprendre comment faire une pause pour que l'administrateur qui va se servir de mon programme puisse voir les erreurs ossibles ;)
Encore merci à tous !