Accueil > Forum > > > > Exécuter une commande DOS avec arguments
Exécuter une commande DOS avec arguments
mercredi 24 novembre 2004 à 15:14:57 |
Exécuter une commande DOS avec arguments

nbouard
|
Bonjour, Je développe actuellement une application sous Visual C++, et j'aimerais lancer une commande MS-DOS de ce type : "C:\pv.exe -perf -localhost -wave "E:\ex_grammaire" -option sigFormat=PCM16,externalVAD=true,asrServersListenPort=32001 "E:\ex_grammaire\Document1.spk" > C:\toto". Il n'y a pas de problème avec la commande system( ), mais celle-ci fait apparaître une fenêtre MS-DOS par dessus mon interface graphique, ce que je souhaîterais éviter. Donc si quelqu'un sait comment ne pas faire apparaître cette fenêtre, ou bien connaît un autre moyen d'exécuter ma commande, je suis preneur... Merci d'avance!
|
|
mercredi 24 novembre 2004 à 15:47:17 |
Re : Exécuter une commande DOS avec arguments

yserver
|
ShellExecute devrait te permetre de faire ce que tu souhaite ca donnerait : ShellExecute ( NULL , "open" , "C:\\pv.exe" , "-perf -localhost -wave \"E:\\ex_grammaire\" -option sigFormat=PCM16,externalVAD=true,asrServersListenPort=32001 \"E:\\ex_grammaire\\Document1.spk\" > C:\\toto" , NULL , SW_HIDE );
Voila la syntaxe (plus d'info sur msdn)
HINSTANCE ShellExecute(
HWND hwnd, // handle to parent window LPCTSTR lpOperation, // pointer to string that specifies operation to perform LPCTSTR lpFile, // pointer to filename or folder name string LPCTSTR lpParameters, // pointer to string that specifies executable-file parameters LPCTSTR lpDirectory, // pointer to string that specifies default directory INT nShowCmd // whether file is shown when opened );
|
|
mercredi 24 novembre 2004 à 15:55:47 |
Re : Exécuter une commande DOS avec arguments

nbouard
|
Merci, mais j'avais déjà essayé, et mes options ne sont pas prises en compte par ShellExecute : en fait c'est comme s'il faisait seulement C:\pv.exe... Une autre solution peut-être?
|
|
mercredi 24 novembre 2004 à 16:21:34 |
Re : Exécuter une commande DOS avec arguments
|
mercredi 24 novembre 2004 à 16:48:29 |
Re : Exécuter une commande DOS avec arguments

nbouard
|
Encore merci, mais j'ai le même problème avec CreateProcess, j'exécute le code suivant :
SECURITY_ATTRIBUTES sa; STARTUPINFO StartupInfo; PROCESS_INFORMATION ProcessInfo;
sa.nLength = sizeof(SECURITY_ATTRIBUTES); sa.lpSecurityDescriptor = NULL; sa.bInheritHandle = TRUE;
ZeroMemory(&StartupInfo, sizeof(STARTUPINFO));
StartupInfo.cb = sizeof(STARTUPINFO); StartupInfo.dwFlags = STARTF_USESTDHANDLES; StartupInfo.wShowWindow = SW_HIDE; StartupInfo.hStdOutput = NULL;
CreateProcess(NULL,"C:\\pv.exe -perf -localhost -wave \"C:\\ex_grammaire\" -option sigFormat=PCM16,externalVAD=true,asrServersListenPort=32001 \"C:\\ex_grammaire\\Document1.spk\" > C:\\toto",&sa,NULL,TRUE,DETACHED_PROCESS,NULL,NULL,&StartupInfo, &ProcessInfo);
Mes arguments sont ignorés et toto reste vide !!! Là je sais vraiment plus quoi faire?...
|
|
mercredi 24 novembre 2004 à 18:03:49 |
Re : Exécuter une commande DOS avec arguments

Bebert37
|
moi j'voterai pour un p'tit execve ou execv (c'est compatible PosiX)de derrière les fagots ... mais bon apres c'est comme tu veux. voila une p'tite doc qui va avec: http://www.epita.fr/docs/man2/execve.2.html ou encore http://mkssoftware.com/docs/man3/execl.3.asp bon courage voila... Ce sont les tonneaux vides et les hommes pleins qui font le plus de bruit 
|
|
mercredi 24 novembre 2004 à 18:07:17 |
Re : Exécuter une commande DOS avec arguments

ymca2003
|
Pour rediriger la sortie standard, il faut mettre un handle du fichier "C:\\toto" pour StartupInfo.hStdOutput.
|
|
vendredi 26 novembre 2004 à 16:11:18 |
Re : Exécuter une commande DOS avec arguments

nbouard
|
Merci à tous. J'ai finalement réussi avec Create Process. Désol pour le temps de réponse mais je ne bosse pas tous les jours sur ce projet... Pour ceux que ça intéresse, voici ma solution: char *commande = "E:\\pv.exe -perf -localhost " "-wave \"E:\\ex_grammaire\" "-option SigFormat=PCM16,externalVAD=true,asrServersListenPort=32001 "\"E:\\ex_grammaire\\Document1.spk\"";
char *resultat = "E:\\toto";
char buffer[200]; BOOL statut; STARTUPINFO startupinfo; PROCESS_INFORMATION pi; SECURITY_ATTRIBUTES sa;
memset(&startupinfo,0,sizeof startupinfo); memset(&pi,0,sizeof pi);
MessageBox(NULL,commande,"message",MB_OK);
startupinfo.cb = sizeof(startupinfo); startupinfo.dwFlags = STARTF_USESTDHANDLES|STARTF_USESHOWWINDOW; startupinfo.wShowWindow = SW_HIDE; startupinfo.hStdInput = GetStdHandle(STD_INPUT_HANDLE); startupinfo.hStdError = GetStdHandle(STD_ERROR_HANDLE); sa.nLength = sizeof sa; sa.lpSecurityDescriptor = NULL; sa.bInheritHandle = TRUE; startupinfo.hStdOutput = CreateFile( resultat, GENERIC_WRITE, FILE_SHARE_WRITE, &sa, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); if (startupinfo.hStdOutput==INVALID_HANDLE_VALUE){ MessageBox(NULL,"echec CreateFile","message",MB_OK);; return; }
statut = CreateProcess( NULL,commande, NULL,NULL, TRUE,0, NULL,NULL, &startupinfo,&pi);
if (statut==FALSE){ MessageBox(NULL,"echec CreateProcess","message",MB_OK);; CloseHandle(startupinfo.hStdOutput); return; }
bool stop = false; while(!stop) { DWORD waitstatut = WaitForSingleObject(pi.hProcess,INFINITE); if (waitstatut == WAIT_OBJECT_0){ DWORD exitcode; statut = GetExitCodeProcess(pi.hProcess,&exitcode); if (statut!=FALSE) { if (exitcode != STILL_ACTIVE){ sprintf(buffer,"exit code = %d",exitcode); MessageBox(NULL,buffer,"message",MB_OK);; stop = true; } } } else { sprintf(buffer,"signal = %08X",waitstatut); MessageBox(NULL,buffer,"message",MB_OK);; stop = true; }
} CloseHandle(pi.hProcess); CloseHandle(pi.hThread); CloseHandle(startupinfo.hStdOutput);
|
|
Cette discussion est classée dans : ms, commande, exécuter, dos, arguments
Répondre à ce message
Sujets en rapport avec ce message
Comment ecrire une commande sous MS-DOS [ par salley ]
Voila, j'aimerais que mon programme ecrive la ligne suivante dans le "command prompt" (sous MS-DOS) automatiquement. scheduler report.txt <br
Exécuter cmd DOS [ par ro0tsman ]
Bonjour tt l'monde,voilà mon problème : je souhaite exécuter une commande DOS donc ca c'est bon c'est pas un problème mais cette commande est du type
[C] Pause [ par zaert ]
Salut tout le monde ! Je vien de debuter le C avant hier soir et j'aimerais savoir comment utiliser la commande system("pause"); en C pour eviter que
masquez la fenetre de commande ms-dos [ par debjo ]
bonsoir, j'ai créé un programme en c++, et j'effectue une commande "ping" et je voudrais savoir si il est possible de masquer la fenêtre de commande
appeler à une ligne commande dos [ par boualiasma ]
Bonjour, Dans mon programme C, je voulais appeler un autre programme X qui est exécuté par une ligne commande dos. Donc, comment je vais appeler à un
Commande DOS sous windows [ par magicientarik ]
Salut, Svp si qlq un peux m'aider, Je veux utiliser un ensemble des commande DOS sur une application C++ sous windows, le workspace du projet est sur
comment marche dos? [ par sizixe ]
Bonjour, j'aimerais savoir comment dos fonctionne ? par ex : quand je tape une commande ? je sais que c'est du genre : if (conditions) { instructions
Limiter la commande Dir sous dos [ par TechLeader ]
Bonjour, Voici mon souci: Je souhaite faire une recherche de fichier toute simple en batch Dos en utilisant la commande dir. En admettant que j'ai de
Dll pilotant l'activeX de VLC [ par rem_s27 ]
Bonjour à tous,je cherche à dévelloper une dll permettant de piloté l'activeX axvlc.dll de VLC. Je développe sous VSC++ 6. En gros ce que je voudrais
Probleme d'execution de commande dos [ par Mowti ]
Bonjour, Lorsque que j'exécute : [code=c]system("fsutil file createnew c:\test\test.txt 1048576");[/code] Le programme m'écrit "Utilisation : .... Pa
Livres en rapport
|
Derniers Blogs
SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc [TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko
Forum
ALGORITHMESALGORITHMES par whayoub
Cliquez pour lire la suite par whayoub
Logiciels
PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|