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

GTK+ avec C & C++ Discussion :

Executer un fichier via un programme externe


Sujet :

GTK+ avec C & C++

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10
    Points : 9
    Points
    9
    Par défaut Executer un fichier via un programme externe
    Bonjour,

    Je programme actuellement un soft qui gère des articles scientifiques. (GTK/windows)
    J'aimerai pouvoir depuis ce logiciel lancer Acrobat Reader et lire ces articles qui sont au format PDF.
    Comment s'y prendre? (j'ai juste besoin de la fonction qui execute le fichier car j'ai déjà tout créé : l'interface graphique avec les bouton et les signaux).

    Merci d'avance!

  2. #2
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Points : 11 625
    Points
    11 625
    Par défaut
    Bonjour,

    Toutes les fonctions pour lancer un programme sont ici : glib - Spawning Processes, celle qui me paraît la plus adaptée est g_spawn_command_line_async

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10
    Points : 9
    Points
    9
    Par défaut
    Merci!
    Ces fonctions ont l'air de mieux permettre la portabilité Linux/Windows que ce que j'allais utiliser; à savoir ShellExecute() ...
    J'essaie de faire fonctionner tout ça et je posterai le fragment de code.

  4. #4
    Alp
    Alp est déconnecté
    Expert éminent sénior

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Points : 11 860
    Points
    11 860
    Par défaut
    Sinon tu as le bon vieux system()
    Ou bien mes pipes, si tu as besoin de récupérer la sortie --- mais ce n'est pas le cas ici.

    Apparemment, ce qu'a donné gege est plus adapté. C'est même certain

  5. #5
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Points : 11 625
    Points
    11 625
    Par défaut
    Citation Envoyé par Alp Voir le message
    Sinon tu as le bon vieux system()
    Le problème c'est que cette fonction attend la fin du programme pour retourner (sauf astuce Linuxienne), donc pendant ce temps l'interface graphique sera figée

  6. #6
    Alp
    Alp est déconnecté
    Expert éminent sénior

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Points : 11 860
    Points
    11 860
    Par défaut
    Ah oui c'est vrai. Je ne m'en sers jamais quand je fais des IHM.

  7. #7
    Membre éprouvé
    Avatar de Shugo78
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 119
    Points : 1 001
    Points
    1 001
    Par défaut
    Citation Envoyé par gege2061
    Le problème c'est que cette fonction attend la fin du programme pour retourner (sauf astuce Linuxienne), donc pendant ce temps l'interface graphique sera figée
    Si tu entend par astuce linuxienne le fait d'éxécuter le programme en arrière plan avec un appel tel que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    system("monprogexterne -argsx -optiony&");
    C'est aussi possible sous windows , avec un appel tel que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Prompt>start macommande
    Donc c'est aussi possible avec un appel à system de ce type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    system("start monprogexterne -argsx -optiony");
    Omnes Vulnerant Ultima Necat
    Bye

Discussions similaires

  1. Réponses: 4
    Dernier message: 25/06/2011, 06h40
  2. ouvrir des fichiers avec des programmes externes
    Par julie_lab dans le forum Entrée/Sortie
    Réponses: 1
    Dernier message: 25/10/2010, 06h05
  3. executer programme externe via php
    Par said57 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 11/05/2009, 16h12
  4. Executer un fichier .java externe au programme
    Par DamS2502 dans le forum Langage
    Réponses: 16
    Dernier message: 06/05/2008, 16h42
  5. [Debutant(e)]Execution d'un programme externe
    Par saidi_chahrat dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 26/08/2004, 11h35

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