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

  FORUM HardWare.fr
  Programmation
  C

  Lancer une application externe en C

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Lancer une application externe en C

n°986443
Koon5
Posté le 18-02-2005 à 17:20:05  profilanswer
 

Bonjour a tous,  
Je suis etudiant et pour mon projet de fin d'études, j'ai décidé de realiser une télécommande bluetooth avec un pocket pc.  
 
Pour ce faire je suis dans l'obligation de programmer en C un programme sur mon PC permettant de lancer des applications externes( telles que windows media player ou winamp) ou d'ouvrir des fichiers avec le logciel qui correspond.  
Si quelqu'un a des conseils a donner je suis tres prenneur!!  
J'ai pu voir qu'avec le win32api ca pouvait etre possible mais je ne vois pas trop comment faire et quelle fonction utilisée.  
 
Par avance Merci!!!

mood
Publicité
Posté le 18-02-2005 à 17:20:05  profilanswer
 

n°986557
Emmanuel D​elahaye
C is a sharp tool
Posté le 18-02-2005 à 19:29:16  profilanswer
 

Koon5 a écrit :

Pour ce faire je suis dans l'obligation de programmer en C un programme sur mon PC permettant de lancer des applications externes


La fonction standard est system() (<stdlib.h> ).


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°986882
Koon5
Posté le 19-02-2005 à 09:53:11  profilanswer
 

Ok merci beaucoup je viens de trouver cette fonction, cependant quel est le parametre d'entrée? car dans sa definition, il prend un const char*... Est ce l'indentifiant de l'application?(si oui ou le trouver?)
 
CRTIMP int    __cdecl system(const char *);

n°986889
Emmanuel D​elahaye
C is a sharp tool
Posté le 19-02-2005 à 10:16:54  profilanswer
 

Koon5 a écrit :

Ok merci beaucoup je viens de trouver cette fonction, cependant quel est le parametre d'entrée? car dans sa definition, il prend un const char*... Est ce l'indentifiant de l'application?(si oui ou le trouver?)
 
CRTIMP int    __cdecl system(const char *);


L'adresse d'une chaine représentant la commande... Au fait, qu'en pense ton livre de C ? man system ?
 
Voici ce que dit l'aide de Borland C (évidemment, les explications sont orientées DOS, car la fonction est standard, mais son effet n'est pas portable, bien sûr...) :


  ________
  ¦systemÌ               <PROCESS.H, STDLIB.H>
  ________
  Lance une commande du DOS.
 
  Déclaration:  int system(const char *command);
 
  Description:
 system invoque l'interpréteur de commandes du DOS (COMMAND.COM) afin
 d'exécuter la commande donnée dans la chaîne command, comme si elle avait
 été saisie au niveau de l'invite du DOS.
 
 Le programme à exécuter doit être placé dans le répertoire courant ou dans
 un de ceux cités dans la variable d'environnement PATH du DOS.
 
 La variable d'environnement COMSPEC est consultée pour retrouver le fichier
 COMMAND.COM, qui ne doit donc pas nécessairement figurer dans le répertoire
 actif ("courant" ).
 
  Valeur renvoyée:
   _ Si succès, renvoie 0
   _ Si erreur, renvoie -1 et force errno à
     ENOENT, ENOMEM, E2BIG ou ENOEXEC.
 
  Portabilité:
  + DOS Ð UNIX Ð ANSI C Ð C++ Seul +
  ¦ Oui ¦  Oui ¦   Oui  ¦          ¦
  +-----¤------¤--------¤----------+
 
  Voir Aussi:
   _fpreset     exec...      searchpath   spawn...
 
  Exemple:
 
  #include <stdlib.h>
  #include <stdio.h>
 
  int main(void)
  {
     printf("About to spawn command interpreter and run a DOS command\n" );
     system("dir" );
     return 0;
  }


Message édité par Emmanuel Delahaye le 19-02-2005 à 11:18:17

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°986898
Koon5
Posté le 19-02-2005 à 10:45:55  profilanswer
 

En fait je ne souhaite pas utiliser le dos car j'aimerais lancer des fichiers mp3. On m'a parlé de win32api...

n°986908
Emmanuel D​elahaye
C is a sharp tool
Posté le 19-02-2005 à 11:17:05  profilanswer
 

Koon5 a écrit :

En fait je ne souhaite pas utiliser le dos


Peut importe. system() invoque l'interpréteur de commande courant de ton système (sous XP, cmd.exe, par exemple)

Citation :

car j'aimerais lancer des fichiers mp3. On m'a parlé de win32api...


Un fichier mp3 n'est pas exécutable. Il peut servir de paramètre à un exécutable qui va lire ce fichier (Winamp etc.)
 
Par exemple  

  system ("winamp jimihendrix.mp3" );


 
Tu peux aussi utiliser une fonction de l'API Windows,  
 
http://msdn.microsoft.com
 
mais ton code ne sera plus portable. En principe, on ne fait ça qu'une fois que les solutions portables ont été épuisées...

Message cité 1 fois
Message édité par Emmanuel Delahaye le 19-02-2005 à 11:18:45

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°986921
Koon5
Posté le 19-02-2005 à 11:29:18  profilanswer
 

Ok tres bien! c'est sympa!! Je vais tester ca!
Merci!
Autre chose, je souhaite donc faire une telecommande et je souhaitais génerer une sorte de catalogue dans un fichier txt que j'enverrai vers le pocket pc qui traitera les donnees.
La question est:comment peut on en C dresser une liste de fichiers d'un repertoire et l'importer dans un fichier txt?(je connais f_open,f_write,f_close)

n°986929
Emmanuel D​elahaye
C is a sharp tool
Posté le 19-02-2005 à 11:43:45  profilanswer
 

Koon5 a écrit :

comment peut on en C dresser une liste de fichiers d'un repertoire


Pour récupérer la liste des fichier d'un répertoire, il faut utiliser une fonction système. Puisque tu es sous Windows, le mieux est de consulter la liste des fonctions dans MSDN (lien déjà donné).

Citation :

et l'importer dans un fichier txt?(je connais f_open,f_write,f_close)


Non! Tu connais fopen(), fwrite() ,fclose() ... !
 
Pour créer un ficher texte, tu utilises fopen() avec "w", fprintf(), fclose(). Cette question est très basique AMA, tu devrais commencer par apprendre le langage C avant de te lancer dans des choses plus compliquées...
 
Quelques conseils utiles:
 
http://mapage.noos.fr/emdel/
 


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°986942
Koon5
Posté le 19-02-2005 à 12:12:37  profilanswer
 

Ok Ok simplement les reflexions je pense que tu peux les garder, si je post c'est pour avoir de l'aide!
Je sais tres bien utiliser les fonctions de creation de fichier txt.
Merci pour ton aide

n°986955
Emmanuel D​elahaye
C is a sharp tool
Posté le 19-02-2005 à 12:23:58  profilanswer
 

Koon5 a écrit :

Ok Ok simplement les reflexions je pense que tu peux les garder, si je post c'est pour avoir de l'aide!


L'aide consiste aussi à te conseiller ce qu'il faut faire. Si tu ne veux pas d'aide, ne poste pas ici.

Citation :


Je sais tres bien utiliser les fonctions de creation de fichier txt.


Visiblement, non...


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
mood
Publicité
Posté le 19-02-2005 à 12:23:58  profilanswer
 

n°1496178
Wolfi-
Posté le 27-12-2006 à 02:26:27  profilanswer
 

ok et comment ferait-on pour lancer un programme dont l'utilisateur taperait le nom ?


Message édité par Wolfi- le 27-12-2006 à 02:26:42
n°1496179
0x90
Posté le 27-12-2006 à 02:31:52  profilanswer
 

printf("Appuyez sur les touches Win+R puis tappez le nom d'un programme puis enfin appuyez sur la touche Entrée\n" );
[:petrus75]


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
n°1496181
Wolfi-
Posté le 27-12-2006 à 02:52:50  profilanswer
 

mdr nan j'ai trouvé avec system(chaine) ca marche

n°1496183
-ThX-
Not here anymore
Posté le 27-12-2006 à 05:03:29  profilanswer
 

Koon5 a écrit :

Ok Ok simplement les reflexions je pense que tu peux les garder, si je post c'est pour avoir de l'aide!


 
Cte réponse... surtout destinée a ED :( :spamafote:

n°1496445
breizhbugs
Posté le 27-12-2006 à 21:15:03  profilanswer
 

Emmanuel Delahaye a écrit :

Peut importe. system() invoque l'interpréteur de commande courant de ton système (sous XP, cmd.exe, par exemple)

Citation :

car j'aimerais lancer des fichiers mp3. On m'a parlé de win32api...


Un fichier mp3 n'est pas exécutable. Il peut servir de paramètre à un exécutable qui va lire ce fichier (Winamp etc.)
 
Par exemple  

  system ("winamp jimihendrix.mp3" );


 
Tu peux aussi utiliser une fonction de l'API Windows,  
http://msdn.microsoft.com
 
mais ton code ne sera plus portable. En principe, on ne fait ça qu'une fois que les solutions portables ont été épuisées...


 
Si la commande "system" est censée être portable, 'system ("winamp jimihendrix.mp3" );' ne l'est pas du tout car rien n'indique que l'utilisateur utilise winamp pour lire ses mp3!!!
 
Si effectivement tu (koon5) programmes pour une plateforme windows uniquement alors renseigne toi sur la fonction 'ShellExecute' (tu trouvera le descriptif sur msdn, voir adresse ci dessus).

Message cité 1 fois
Message édité par breizhbugs le 27-12-2006 à 21:15:52
n°1496472
Emmanuel D​elahaye
C is a sharp tool
Posté le 27-12-2006 à 23:39:23  profilanswer
 

breizhbugs a écrit :

Si la commande "system" est censée être portable, 'system ("winamp jimihendrix.mp3" );' ne l'est pas du tout car rien n'indique que l'utilisateur utilise winamp pour lire ses mp3!!!


 
C'est pour ça qu'il y a écrit "par exemple"...  :sleep:


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/

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

  Lancer une application externe en C

 

Sujets relatifs
Page d'erreur Websphere Application Server [résolu]Grid computing : simulation d'application
[php] [avis] application pour resto[DIVERS] Lancer un programme depuis un pdf
Application VB avec gestion access sans access installé !!Creer un .exe pour lancer une appli java (pas la compiler, hein) ?
Lancer un programma au démarrage de l'ordiCreer un bouton sur firefox pour lancer une autre application
Comment afficher une page html depuis une application java [Réglé] 
Plus de sujets relatifs à : Lancer une application externe en C


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