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

  FORUM HardWare.fr
  Programmation
  C++

  Probleme avec l'instruction system du C++

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Probleme avec l'instruction system du C++

n°450250
th3r1ddl3r
Posté le 07-07-2003 à 15:13:27  profilanswer
 

salut a tous,
voila j'ai un petit problème avec l'instruction system. En effet elle me permet d'executer un fichier .bat mais pas en parallèle de mon programme. Mon programme principal est bloque tan que je n'ai pas arrete l'execution de mon .bat.  
Comment puis je passer outre ce probleme?? Dois je definir une thread?
 
Merci d'avance.

mood
Publicité
Posté le 07-07-2003 à 15:13:27  profilanswer
 

n°450264
antp
Super Administrateur
Champion des excuses bidons
Posté le 07-07-2003 à 15:19:08  profilanswer
 

ShellExecute, ShellExecuteEx, ou CreateProcess


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°450287
HelloWorld
Salut tout le monde!
Posté le 07-07-2003 à 15:29:24  profilanswer
 

Code :
  1. system("start monfic.bat" );


:D


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°450288
th3r1ddl3r
Posté le 07-07-2003 à 15:29:29  profilanswer
 

Merci, mais sont un poil complexe tes fonctions (10 parametres !!)
 je veux juste lancer un .bat en parallèle.
ShellExecuteEx ne marche pas quand je lui donne le chemin de mon fichier

n°450291
antp
Super Administrateur
Champion des excuses bidons
Posté le 07-07-2003 à 15:32:36  profilanswer
 

th3r1ddl3r a écrit :

Merci, mais sont un poil complexe tes fonctions (10 parametres !!)
 


 
ShellExecute(0, NULL, "fichier.bat", NULL, NULL, SW_SHOWNORMAL);
 
très complexe en effet :D


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°450294
th3r1ddl3r
Posté le 07-07-2003 à 15:35:56  profilanswer
 

Merci mille fois,
 
t un amour ;-)

n°450296
th3r1ddl3r
Posté le 07-07-2003 à 15:36:59  profilanswer
 

maintenant faudrait que je teste si j'ai pas deja un programme prog.exe qui tourne dans mes processus.
tu peux m'aider???

n°450298
polo021
Posté le 07-07-2003 à 15:37:18  profilanswer
 

antp a écrit :


 
ShellExecute(0, NULL, "fichier.bat", NULL, NULL, SW_SHOWNORMAL);
 
très complexe en effet :D


nan il a raison ca marche pas cette fonction.  
 
 
Si tu trouves comment resoudre ton probleme fais moi signe car j'ai le meme.

n°450300
polo021
Posté le 07-07-2003 à 15:38:12  profilanswer
 

th3r1ddl3r a écrit :

maintenant faudrait que je teste si j'ai pas deja un programme prog.exe qui tourne dans mes processus.
tu peux m'aider???


ctrl+alt+del  -> task list :whistle:

n°450301
th3r1ddl3r
Posté le 07-07-2003 à 15:38:12  profilanswer
 

ben si chez moi ca marche sa fonction

mood
Publicité
Posté le 07-07-2003 à 15:38:12  profilanswer
 

n°450303
th3r1ddl3r
Posté le 07-07-2003 à 15:39:00  profilanswer
 

et comment tu recupere ca dans un prog Ctrl+Alt+Suppr????

n°450309
polo021
Posté le 07-07-2003 à 15:44:08  profilanswer
 

th3r1ddl3r a écrit :

et comment tu recupere ca dans un prog Ctrl+Alt+Suppr????


a partir du prog aucune idee.

n°450311
polo021
Posté le 07-07-2003 à 15:46:55  profilanswer
 

th3r1ddl3r a écrit :

ben si chez moi ca marche sa fonction


faut inclure quel .h  :??:  pour shellexecute?

n°450312
western
AJMM
Posté le 07-07-2003 à 15:47:36  profilanswer
 

th3r1ddl3r a écrit :

salut a tous,
voila j'ai un petit problème avec l'instruction system. En effet elle me permet d'executer un fichier .bat mais pas en parallèle de mon programme. Mon programme principal est bloque tan que je n'ai pas arrete l'execution de mon .bat.  
Comment puis je passer outre ce probleme?? Dois je definir une thread?
 
Merci d'avance.


 

Code :
  1. pid_t fils = fork();
  2. if(fils == 0)
  3. {
  4.   //code fils
  5.   system("" );
  6. }
  7. else
  8. {
  9.   //code pere  
  10.   // ...
  11.   //une attente non bloquante
  12.   if(waitpid (fils, WNOHANG|WUNTRACED) == fils)
  13.   {
  14.      //tient! le fils a fini
  15.   }
  16.   else
  17.   {
  18.      //tient! le fils n'a pas encore fini
  19.   }
  20. }

n°450316
th3r1ddl3r
Posté le 07-07-2003 à 15:49:25  profilanswer
 

polo021 a écrit :


faut inclure quel .h  :??:  pour shellexecute?


 
shellapi.h
 
et fais gaff au majs !!
 
ShellExecute !!!

n°450317
polo021
Posté le 07-07-2003 à 15:49:45  profilanswer
 

western a écrit :


 

Code :
  1. pid_t fils = fork();
  2. if(fils == 0)
  3. {
  4.   //code fils
  5.   system("" );
  6. }
  7. else
  8. {
  9.   //code pere  
  10.   // ...
  11.   //une attente non bloquante
  12.   if(waitpid (fils, WNOHANG|WUNTRACED) == fils)
  13.   {
  14.      //tient! le fils a fini
  15.   }
  16.   else
  17.   {
  18.      //tient! le fils n'a pas encore fini
  19.   }
  20. }




il est sous nux?

n°450318
polo021
Posté le 07-07-2003 à 15:51:10  profilanswer
 

th3r1ddl3r a écrit :


 
shellapi.h
 
et fais gaff au majs !!
 
ShellExecute !!!


Citation :

'ShellExecute' : undeclared identifier

[:spamafote]

n°450320
th3r1ddl3r
Posté le 07-07-2003 à 15:52:12  profilanswer
 

polo021 a écrit :


Citation :

'ShellExecute' : undeclared identifier

[:spamafote]


ben chez moi ca marche. t sur du include??

n°450330
polo021
Posté le 07-07-2003 à 15:59:36  profilanswer
 

th3r1ddl3r a écrit :


ben chez moi ca marche. t sur du include??


ouais sinon il serait pas passe a la compil [:spamafote]
 
tu pourrais essayer un truc pour moi?
Tu fais la meme chose que le ShellExecute mais avec ShellExecuteEx si tu vuex bien, c'est juste pour voir si ca fonctionne.
 
je te file tout le code

Code :
  1. CString mode = "open";
  2. CString file = "ton fichier.exe";
  3. _SHELLEXECUTEINFO  sei;
  4.    ZeroMemory(&sei, sizeof(sei));
  5.    sei.cbSize = sizeof(sei);
  6.    sei.fMask = NULL;
  7.    sei.hwnd = NULL;
  8.    sei.lpVerb = mode;
  9. sei.lpFile = file;
  10.    sei.lpParameters = NULL;
  11.    sei.lpDirectory = NULL;//dir;
  12.    sei.nShow = SW_SHOWNORMAL;
  13.    sei.hInstApp = NULL;
  14. ShellExecuteEx(&sei);

n°450333
th3r1ddl3r
Posté le 07-07-2003 à 16:01:40  profilanswer
 

polo021 a écrit :


ouais sinon il serait pas passe a la compil [:spamafote]
 
tu pourrais essayer un truc pour moi?
Tu fais la meme chose que le ShellExecute mais avec ShellExecuteEx si tu vuex bien, c'est juste pour voir si ca fonctionne.
 
je te file tout le code

Code :
  1. CString mode = "open";
  2. CString file = "ton fichier.exe";
  3. _SHELLEXECUTEINFO  sei;
  4.    ZeroMemory(&sei, sizeof(sei));
  5.    sei.cbSize = sizeof(sei);
  6.    sei.fMask = NULL;
  7.    sei.hwnd = NULL;
  8.    sei.lpVerb = mode;
  9. sei.lpFile = file;
  10.    sei.lpParameters = NULL;
  11.    sei.lpDirectory = NULL;//dir;
  12.    sei.nShow = SW_SHOWNORMAL;
  13.    sei.hInstApp = NULL;
  14. ShellExecuteEx(&sei);




 
tu veu que je teste mon code avec shellexecuteex ou bien que je teste le tien??

n°450340
polo021
Posté le 07-07-2003 à 16:08:29  profilanswer
 

th3r1ddl3r a écrit :


 
tu veu que je teste mon code avec shellexecuteex ou bien que je teste le tien??


T'essaye juste de lancer ton .bat avec l'instruction ShellExecuteEx au lieu de ShellExecute.
Le code c'est juste pour pas que tu passes 10 minutes a trouver ca dans la doc.

n°450344
th3r1ddl3r
Posté le 07-07-2003 à 16:12:54  profilanswer
 

polo021 a écrit :


T'essaye juste de lancer ton .bat avec l'instruction ShellExecuteEx au lieu de ShellExecute.
Le code c'est juste pour pas que tu passes 10 minutes a trouver ca dans la doc.


 
j'ai ca comme erreur:
 
Linking...
LINK : fatal error LNK1168: cannot open c:\3dsmax4\plugins\max2neb.dle for writing
Error executing link.exe.

n°450345
th3r1ddl3r
Posté le 07-07-2003 à 16:14:41  profilanswer
 

th3r1ddl3r a écrit :


 
j'ai ca comme erreur:
 
Linking...
LINK : fatal error LNK1168: cannot open c:\3dsmax4\plugins\max2neb.dle for writing
Error executing link.exe.


 
Non c t de ma faute ca compile bien

n°450349
th3r1ddl3r
Posté le 07-07-2003 à 16:15:43  profilanswer
 

essaye           _SHELLEXECUTEINFOA    sei;
a la place de    _SHELLEXECUTEINFO     sei;

n°450350
polo021
Posté le 07-07-2003 à 16:15:59  profilanswer
 

et ca lance ton programme ou pas?

n°450352
th3r1ddl3r
Posté le 07-07-2003 à 16:17:05  profilanswer
 

polo021 a écrit :

et ca lance ton programme ou pas?


 
ouep

n°450353
polo021
Posté le 07-07-2003 à 16:17:42  profilanswer
 

th3r1ddl3r a écrit :

essaye           _SHELLEXECUTEINFOA    sei;
a la place de    _SHELLEXECUTEINFO     sei;


error C2065: '_SHELLEXECUTEINFOA' : undeclared identifier :heink:  
Ca doit etre a cause de la version de notre environnement de developpement.
Mais ca a fonctionne alors je suppose? :sweat:

n°450355
polo021
Posté le 07-07-2003 à 16:18:39  profilanswer
 


[:sisicaivrai]
nan mais quelle m.... les pocket pc et win CE[:ruisseau de larmes]


Message édité par polo021 le 07-07-2003 à 16:19:04
n°450356
th3r1ddl3r
Posté le 07-07-2003 à 16:18:39  profilanswer
 

polo021 a écrit :


error C2065: '_SHELLEXECUTEINFOA' : undeclared identifier :heink:  
Ca doit etre a cause de la version de notre environnement de developpement.
Mais ca a fonctionne alors je suppose? :sweat:  


 
avec _SHELLEXECUTEINFO il compile pas
avec _SHELLEXECUTEINFOA il compile et ca marche

n°450364
polo021
Posté le 07-07-2003 à 16:26:04  profilanswer
 

th3r1ddl3r a écrit :


 
avec _SHELLEXECUTEINFO il compile pas
avec _SHELLEXECUTEINFOA il compile et ca marche


 
ok merci qd meme

mood
Publicité
Posté le   profilanswer
 


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

  Probleme avec l'instruction system du C++

 

Sujets relatifs
probleme avec fenetre propriete dans visual.NETProbleme avec alloca et gcc
Probleme avec les sessions PHP 4[C++ / VC++] Gros probleme de déclaration de classes :(
probleme de miniatures d'images[PHP] probleme refresh cause de requete
[MCD] Problème de modélisation[VB.Net] Problème général sur les forms en VB. Net
Petit probleme de client smtpProblème de temps
Plus de sujets relatifs à : Probleme avec l'instruction system du C++


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR