IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Gerer un autre programme.


Sujet :

C

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 81
    Par défaut Gerer un autre programme.
    Bonjour,

    j'essaie actuellement de réaliser un petit lecteur de flux radio en utilisant mplayer.

    Tout fonctionne a merveille sauf le principal : Comment lancer Mplayer (ou un autre) en tâche de fond, tout en pouvant (depuis le programme principal) contrôler sa mise en pause, son arrêt etc.


    Ma première tentative avec 'system (blabla &);' m'a évidement posé problème puisque je ne pouvais plus avoir la main sur le programme lancé de cette façon.

    J'ai regardé du côté des thread mais ça n'a pas l'aire de convenir.

    J'ai aussi envisagé des faire moi-même la partie concernant Gstreamer, mais je ne suis pas sur d'avoir le niveau, notamment pour les doc Anglaises.

    Donc voilà, je m' en remet a vos connaissances.
    echantillon.

    EDIT : j'ai oublié de préciser que je suis sous linux; c'est fait!.

  2. #2
    Membre expérimenté Avatar de Sebou77
    Inscrit en
    Mars 2006
    Messages
    212
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2006
    Messages : 212
    Par défaut
    t'as regardé si y avait pas des API pour Mplayer ?
    ça m'étonnerais qu'ils en fournissent pas

  3. #3
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Citation Envoyé par Sebou77
    t'as regardé si y avait pas des API pour Mplayer ?
    ça m'étonnerais qu'ils en fournissent pas
    J'ai pas trouvé grand chose (rien même).
    http://msdn2.microsoft.com/en-us/library/aa969732.aspx

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 81
    Par défaut
    Je ne parlais pas de WindowsMediaPlayer mais de Mplayer : http://fr.wikipedia.org/wiki/MPlayer

    Sinon une simple solution pour arrêter un thread sans lui demander son avis serais la bien venue.

    De manière plus générale je cherche a lancer un programme sans bloquer le mien (...) , puis a un moment donné le tuer sans lui demander son avis. (on va dire que je laisse tomber l'idée de pouvoir lui passer des arguments)

    voilà!

  5. #5
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Citation Envoyé par echantillon
    Je ne parlais pas de WindowsMediaPlayer mais de Mplayer : http://fr.wikipedia.org/wiki/MPlayer

    Sinon une simple solution pour arrêter un thread sans lui demander son avis serais la bien venue.

    De manière plus générale je cherche a lancer un programme sans bloquer le mien (...) , puis a un moment donné le tuer sans lui demander son avis. (on va dire que je laisse tomber l'idée de pouvoir lui passer des arguments)

    voilà!
    Oups désolé mal lu.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 81
    Par défaut
    Salut,
    Sur un autre forum on m'a conseillé (expéditivement) ceci mais je n'ai pas tout compris. Cette personne m'a aussi parlé des spawn (après plus de nouvelles !) mais une recherche intensive sur google n'a pas éclairé le sujet. Donc je ne sais toujours pas a quoi m' en tenir.

    Voilà, je n' avance guère quoi . En attente d'une réponse ou d'une idée, merci d'avance ;°)

  7. #7
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    Il y a 1 problème dans l'énoncé du problème :

    echantillon a écrit :

    Comment lancer Mplayer (ou un autre) en tâche de fond, tout en pouvant (depuis le programme principal) contrôler sa mise en pause, son arrêt etc.
    Ben si il est en tâche de fond par définition tu ne peux pas contrôler sa mise en pause etc...

    Par contre, si ce que tu veux c'est une fois démarré le stopper(quitter), ça c'est faisable avec les "ps" et "kill"...

    Mais explicites un peu, parce que là c'est pas clair....

    [edit] d'après ton dernier post voici ce que tu peux faire :

    pour lancer aucun problème avec system()..
    Tu peux passer des arguments aussi...

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    system("ls -a /home/toto");
     
    system("MPlayer -v -q &");
    (je ne sais pas si les -v -q existent, mais c'est pour l'exemple)

    Et pour l'arrêter, c'est un peu plus long, mais ça se fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
       FILE *fp ;
     
       system ("ps -e > /tmp/maliste");
     
       fp = fopen("/tmp/maliste", "r");
       ....
    et tu peux même t'en sortir en faisant une suite de pipe si tu préfères :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     system("ps -e | grep MPlayer | awk .... | kill -9");

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 81
    Par défaut
    Salut souviron34,

    tu a bien compris mon problème, et l'astuce est élégante (radicale). Mais KILL jusque là ne s'utilise qu' en tant qu' admin. (non ?)

    Si je dois passer par un sudo (ou gksudo) juste pour fermer mplayer ça ne va pas faire très propre.. Est-ce que je me trompe quelque part ?
    cordialement ;°)

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 81
    Par défaut
    ha ben non! pas besoin des droits je viens de tester.

    Du coup, si on a accès a un compilateur, on peut exécuter la commande que l'on veux ?
    En tant qu' administrateur, comment on fait pour empêcher ça ?

    EDIT : Oups, je dit des bétises :°)
    Pardonnez mon esprit embarbouillé par cette nuit blanche :°)

    Bon, je crois qu'il ne me reste plus qu'a passer le thread en résolu.
    Merci encore, et bonne journée.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Laisser un "message" à un autre programme
    Par oiffrig dans le forum C
    Réponses: 3
    Dernier message: 14/10/2005, 12h19
  2. compilation d'un programme à partir d'un autre programme??
    Par Naruseb dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 11/08/2005, 15h05
  3. Lancer l'exécution d'un autre programme
    Par Neitsa dans le forum Linux
    Réponses: 3
    Dernier message: 21/05/2005, 23h39
  4. Réponses: 9
    Dernier message: 19/08/2004, 11h03
  5. [TP]Insertion texte dans un autre programme
    Par FLB dans le forum Turbo Pascal
    Réponses: 53
    Dernier message: 14/06/2003, 20h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo