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

  FORUM HardWare.fr
  Programmation

  [c/c++] Lancer un programme a partir d'un programme en C

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[c/c++] Lancer un programme a partir d'un programme en C

n°70280
thunderbir​d54
Posté le 07-11-2001 à 13:22:08  profilanswer
 

Lancer un programme a partir d'un programme en C
comment faut-il faire?
 
Merci

mood
Publicité
Posté le 07-11-2001 à 13:22:08  profilanswer
 

n°70288
godbout
Génial.
Posté le 07-11-2001 à 13:28:46  profilanswer
 

va voir dans shellExecute ou CreateProcess

n°70290
flo850
moi je
Posté le 07-11-2001 à 13:30:48  profilanswer
 

la commande system est pas mal .
tu es sous windows?
sinon sous linux , exec est tres pratique


---------------

n°70292
thunderbir​d54
Posté le 07-11-2001 à 13:31:59  profilanswer
 

je suis plutot c
comment aller voir shellexecute et createprocess
 
je precise que le prgm que je veux lancer est un prgm dos et que j'aimerais lui passer des parametre

n°70296
flo850
moi je
Posté le 07-11-2001 à 13:38:06  profilanswer
 

si le nom du prog et les arg sont constant , syste doit marcher.


---------------

n°70302
godbout
Génial.
Posté le 07-11-2001 à 13:51:21  profilanswer
 

faut aller voir dans le msdn  
 
http://msdn.microsoft.com
 
y a system, execl ou des trucs comme ca je crois

n°70317
Carbon_14
Posté le 07-11-2001 à 14:19:16  profilanswer
 

Pour passer des paramètres, il suffit de fabriquer la chaîne qui sera concaténée à la commande.
Si on veut lancer TOTO.EXE avec les paramètres dudu.bid -c +h, on fabrique la chaîne "TOTO.EXE dudu.bid -c +h" qu'on passe à ShellExecute.
Je sais pas si le post du même sujet (y a qq mois) est trouvable par "recherche". On peut attendre que le prog soit terminé, ou continuer, ...

n°70399
juju_le_ba​rbare
Vous fiez pas aux apparences !
Posté le 07-11-2001 à 17:02:10  profilanswer
 

CARBON_14 a écrit a écrit :

Pour passer des paramètres, il suffit de fabriquer la chaîne qui sera concaténée à la commande.
Si on veut lancer TOTO.EXE avec les paramètres dudu.bid -c +h, on fabrique la chaîne "TOTO.EXE dudu.bid -c +h" qu'on passe à ShellExecute.
Je sais pas si le post du même sujet (y a qq mois) est trouvable par "recherche". On peut attendre que le prog soit terminé, ou continuer, ...  




 
Mais il veut faire un soft sous DOS, donc l'API *Windows* ShellExecute ne marche pas, non ?


---------------
Visitez mon site : http://www.jujubarbare.linux-fan.com
n°70409
LetoII
Le dormeur doit se réveiller
Posté le 07-11-2001 à 17:43:09  profilanswer
 

si c sous dos c pas la peine de se casser la tête c la commande system il me semble

n°70580
Carbon_14
Posté le 08-11-2001 à 09:47:23  profilanswer
 

Sous DOS, c'est bien system, de mémoire (:)).
C'est pas précisé, d'où le flou. :D

mood
Publicité
Posté le 08-11-2001 à 09:47:23  profilanswer
 

n°71261
thunderbir​d54
Posté le 10-11-2001 à 21:25:58  profilanswer
 

Alors je v clarifier les choses:
en gros je suis sous windows2000 mais je programme en mode console donc ce sera un prog dos
je suppose que vous connaissez la commande (dos) de w2k
net send [nom ordi] ["texte"]
 
alors je veux faire un prog qui me permette  :
1 : lancer net send
2 : me permette de specifier le texte et le nombre de fois que je veux lancer la commande
 
Merci
 
alors? system ou shell?

n°71271
LetoII
Le dormeur doit se réveiller
Posté le 10-11-2001 à 22:08:03  profilanswer
 

Si c sous 2000 cherche du côté de la fonction spawn.

n°71272
antp
Super Administrateur
Champion des excuses bidons
Posté le 10-11-2001 à 22:08:53  profilanswer
 

tu veux faire un programme DOS ou un programme Console ?
si tu fais un programme Windows Console ça a le look d'un programme DOS, mais tu peux utiliser les fonctions de l'API Windows...


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°71280
thunderbir​d54
Posté le 10-11-2001 à 22:53:50  profilanswer
 

100% dos

n°71323
Rebel
Posté le 11-11-2001 à 10:28:11  profilanswer
 

Pourquoi tu fais pas tout simplement une interface GUI sous Windows avec lorsque tu cliques sur un bouton, un appel à Net send ???

n°71338
thunderbir​d54
Posté le 11-11-2001 à 12:11:46  profilanswer
 

je ne c pour l'instant programmer que des prog dos
donc tous ce qui est bouton, api32, gui de windows, je ne c pas utiliser.
 
Alors quelle fonction de quelle librairie dois je utiliser?

n°71388
Fork
Posté le 11-11-2001 à 15:36:23  profilanswer
 

system()

n°71396
thunderbir​d54
Posté le 11-11-2001 à 15:58:31  profilanswer
 

c dans quel librairie (conio,stdio,...???)
 
et c quoi la syntaxe

n°71402
antp
Super Administrateur
Champion des excuses bidons
Posté le 11-11-2001 à 16:19:05  profilanswer
 

Citation :

Code :
  1. #include <stdlib.h>
  2. int system(const char *command);


 
Issues an operating system command.
 
system invokes the operating system command processor to execute an operating system command, batch file, or other program named by the string command, from inside an executing C program.
 
To be located and executed, the program must be in the current directory or in one of the directories listed in the PATH string in the environment.
 
The COMSPEC environment variable is used to find the command processor program file, so that file need not be in the current directory.
 
Return Value
 
If command is a NULL pointer, system returns nonzero if a command processor is available.
 
If command is not a NULL pointer, system returns 0 if the command processor was successfully started.
 
If an error occurred, a -1 is returned and errno is set to one of the following:
 
ENOENT Path or file function not found
ENOEXEC Exec format error
ENOMEM Not enough memory


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°71409
Fork
Posté le 11-11-2001 à 17:01:25  profilanswer
 

Par exemple, pour lancer le programme TOTO.EXE, tu écris
 
void main(void)
{
...
err = system( "TOTO.EXE" );
if(err==-1)
   printf("Erreur" );
...
}

n°71435
antp
Super Administrateur
Champion des excuses bidons
Posté le 11-11-2001 à 19:03:26  profilanswer
 

plutot que printf il vaut mieux utiliser perror:

Code :
  1. perror('Lancement du truc :');


affichera un truc du genre:

Code :
  1. Lancement du truc: File not found


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°71446
[SDF]Poire
Vive Grumly
Posté le 11-11-2001 à 19:25:16  profilanswer
 

thunderbird54 a écrit a écrit :

Alors je v clarifier les choses:
en gros je suis sous windows2000 mais je programme en mode console donc ce sera un prog dos
je suppose que vous connaissez la commande (dos) de w2k
net send [nom ordi] ["texte"]
 
alors je veux faire un prog qui me permette  :
1 : lancer net send
2 : me permette de specifier le texte et le nombre de fois que je veux lancer la commande
 
Merci
 
alors? system ou shell?  




G fait ton truc avec net send....
Si t'as pas trouvé contact moi par mail ou sur ICQ.....
 
(C pas bien de vouloir flooder C camarades  :non:   :D  :D )

 

[edtdd]--Message édité par [SDF]Poire--[/edtdd]


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
n°71500
thunderbir​d54
Posté le 12-11-2001 à 10:19:50  profilanswer
 

salut les gars voici l'ebauche du prgm
je c pas gerer les chaine de caractere aidez moi
Merci
 
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
 
 
 
   void main(void)
   {
      int nbfois,i,touche;
      char lettre;
      char temp[150]="net send backus08 texte",ordi,texte;
      int system();
 
      printf("Sur quel ordinateur voulez vous que le message s'affcihe?" );
      scanf("%c",&ordi);
   
      printf("Combien de fois voulez vous lancer net send?" );
      scanf("%hd",&nbfois);
 
      printf("\n Que voulez vous qu'affiche net send?" );
      scanf("%c",&texte);
   
   
 
   
      for(i=0;i<nbfois;i++)
      {
         system(temp);
      }
 
      getch();
   }

n°71505
antp
Super Administrateur
Champion des excuses bidons
Posté le 12-11-2001 à 10:38:05  profilanswer
 

le %hd et le %c sont très bizarre.
c'est quoi le h ?
et le %c ça marche ? c'est pas %s normalement ?
et tu devrais utiliser fgets(texte, sizeof(texte), stdin) plutôt que scanf pour le message, car scanf s'arrête aux espaces... (à moins qu'il ne le fasse pas avec le %c mais je croyais que c'était pour 1 seul caractère %c).
et pourquoi faire une déclaration de "int system();" ?

 

[edtdd]--Message édité par antp--[/edtdd]


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°71540
thunderbir​d54
Posté le 12-11-2001 à 13:27:38  profilanswer
 

j'ai fait une nouvelle version
qui utuilise s au lieu de c
hd c pour short int, donc comme j'ai mis int c donc d que je dois utiliser, mais ca ne change pas grand chose
 
nouvelle version qui devrait marcher mais qui ne marche pas, je ne c pas pourquoi. Alors docteur? pas d'erreur a la compilation mais une erreur lors de l'execution : commande incorrecte
 
   void main(void)
   {
      int nbfois,i,touche;
      char lettre;
      char temp[150]="net send ",ordi[10],texte[140];
      int system();
 
      printf("\n Sur quel ordinateur voulez vous que le message s'affiche?" );
      scanf("%s",&ordi[0]);
      fflush(stdin);
 
      printf("\n Combien de fois voulez vous lancer net send?" );
      scanf("%d",&nbfois);
      fflush(stdin);
 
      printf("\nQue voulez vous qu'affiche net send?" );
      scanf("%s",&texte[0]);;
      fflush(stdin);
   
      strcat(temp,ordi);
      strcat(temp," " );
    strcat(temp,texte);
      printf("\n%s \n",temp);
 
      for(i=0;i<nbfois;i++)
      {
         system(temp);
      }
   
      getch();
   }

n°71541
thunderbir​d54
Posté le 12-11-2001 à 13:30:23  profilanswer
 

alors pour scanf je savais pas, peut tu expliciter davantage la fonction donc tu me parles
 
pour la declaration, eh bas c un truc que g trouve comme ca!
avant ca ne marchait pas et maintenant que j'ai rajoute la ligne et bien ca marche!

n°71546
antp
Super Administrateur
Champion des excuses bidons
Posté le 12-11-2001 à 13:44:16  profilanswer
 

tes scanf sont bizarres, &text[0] c un peu lourd. Et pour le message ca marche pas si y a des espaces avec le scanf :
 

Code :
  1.  void main(void)
  2.  {
  3.     int nbfois,i,touche;
  4.     char lettre;
  5.     char temp[150],ordi[10],texte[140];
  6.     int system(); /* je le laisserais pas, mais bon... */
  7.     printf("\n Sur quel ordinateur voulez vous que le message s'affiche?" );
  8.     scanf("%s",ordi);
  9.     fflush(stdin);
  10.     printf("\n Combien de fois voulez vous lancer net send?" );
  11.     scanf("%d",&nbfois);
  12.     fflush(stdin);
  13.     printf("\nQue voulez vous qu'affiche net send?" );
  14.      fgets(texte, sizeof(texte), stdin);
  15.     fflush(stdin);
  16.      sprintf(temp, "net send %s %s", ordi, texte);
  17.     printf("\n%s \n",temp);
  18.     for(i=0;i<nbfois;i++)
  19.     {
  20.        system(temp);
  21.     }
  22.  
  23.     getch();
  24.  }


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°71581
thunderbir​d54
Posté le 12-11-2001 à 15:58:24  profilanswer
 

je v regarder ca chez moi
des que je rentre je te dit si ca marche
 
Merci

n°71583
thunderbir​d54
Posté le 12-11-2001 à 16:07:17  profilanswer
 

j'ai reussi a tester avant de rentrer chez moi
et ca ne marche pas, tjs la meme erreur.
 
je me demande si ca n'est pas du aux caracteres \0 contenu a la fin de temp. Qu'en penses tu?
 
Ne devrait-on pas faire quelques arrangement dans la commande system(). quand je mets system(temp), que comprends le compilateur si temp = "net send backus08 texte"?

n°71584
antp
Super Administrateur
Champion des excuses bidons
Posté le 12-11-2001 à 16:08:45  profilanswer
 

le sprintf met un \0 a la fin donc c'est pas le probleme...
c'est quoi qui marche pas exactement ?
c'est pas par hasard à cause de ton int system(); ?


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°71673
thunderbir​d54
Posté le 12-11-2001 à 20:44:00  profilanswer
 

non je l'ai enleve,
pas de probleme a la compilation mais a l'execution
il me dit commande incorrecte et je me demandais si ce n'tait pas a cause du /0 a la fin de la chaine
 
system ne comprends peut etre pas ca?

n°71813
thunderbir​d54
Posté le 13-11-2001 à 14:18:28  profilanswer
 

up

mood
Publicité
Posté le   profilanswer
 


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

  [c/c++] Lancer un programme a partir d'un programme en C

 

Sujets relatifs
[VB 4] Comment lancer un programme ...[VB6] Comment lancer un exe à partir de VB
Coment lancer un prog avec "system" de sorte que le prog qui lance...[C++] Programme Windows qui crash
Créer des doc PDF à partir de doc Office sur server?Fermer Excel à partir de Word.
Comment savoir le tps que le programme a mis a s'executer en pascal?[c++] Programme plante à la toute fin de l'execution
Plus de sujets relatifs à : [c/c++] Lancer un programme a partir d'un programme en C


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