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 :

Lancer l'application par défaut pouvant ouvrir ce fichier


Sujet :

GTK+ avec C & C++

  1. #1
    Invité
    Invité(e)
    Par défaut Lancer l'application par défaut pouvant ouvrir ce fichier
    Bonjour,

    Je suis sur un logiciel où je dois ouvrir certains documents (notamment PDF pour l'exemple).

    Ces documents ne changent pas, ils sont situés dans un dossier "data".
    Je demande à l'utilisateur lequel veut-il ouvrir via une combobox, etc...

    Et quand il clique sur le bouton valider cela va s'ouvrir dans le logiciel.

    Aujourd'hui je fais cela via une configuration dans un menu préférences où je demande d'indiquer le lecteur par défaut pour le PDF et que j'enregistre dans un .xml.

    Ma question est donc de savoir s'il n'existe pas une méthode plus simple en GTK (ou le cas échéant via les API Win et Posix : le soft doit être multi plateforme) pour ouvrir le fichier directement avec la visionneuse par défaut ?

    Par exemple : ouvrirFichier("monpdf.pdf");


    Deuxième question, Pour ma méthode actuelle j'utilise FileChooser, mais n'y aurait-il pas une autre méthode en Gtk comme on peut le voir sur les bureaux Xfce/Gnome & co avec justement une sélection d'application par défaut ? Si oui, comment le réaliser ?

    Merci d'avance.

  2. #2
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 296
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 296
    Points : 4 949
    Points
    4 949
    Billets dans le blog
    5
    Par défaut
    Gtk met à ta disposition une fonction pour lancer l'application pas défaut en fonction du fichier transmis : g_app_info_launch_default_for_uri ();. Maintenant je ne sais pas si cette fonction est portable.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Très bien merci, je vais tester ça dans la semaine et je tiens au courant.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Alors pour Unix c'est résolu. Pour windows, je dois encore faire des tests, mais à priori ça ne fonctionne pas (je vais me tourner l'API win32 ce n'est pas grave).

    Voici comment je procède :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    GFile *file;
        gchar *uri;
        gchar *le_chemin_de_mon_fichier; /* /home/slash/monfichier.pdf */
        GError *error = NULL;
     
        file = g_file_new_for_path (le_chemin_de_mon_fichier);
        uri = g_file_get_uri (file);
     
        g_app_info_launch_default_for_uri (uri, NULL, &error);
     
        if (error != NULL)
        {
            /* message d'erreur*/
        }

  5. #5
    Modérateur

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    1 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 395
    Points : 2 002
    Points
    2 002
    Par défaut
    Si ça ne marche pas sous Windows, c'est sans doute qu'il faut faire des conversions de locale. GTK et la glib sont en UTF-8, et Windows utilise UTF-16 je crois. Ce qui fait que tu ne peux pas utiliser directement les noms de fichiers à ce que j'ai compris.

    Plutôt que d'utiliser l'API Win32, renseigne toi sur ce point. Tu as par exemple des fonctions comme g_win32_locale_filename_from_utf8, ou g_filename_to_utf8. Je ne peux pas t'en dire plus, je n'ai jamais trop compris comment ça marchait, mais si tu as un peu de temps à consacrer, le résultat de ta recherche m'intéresse

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par liberforce Voir le message
    Si ça ne marche pas sous Windows, c'est sans doute qu'il faut faire des conversions de locale. GTK et la glib sont en UTF-8, et Windows utilise UTF-16 je crois. Ce qui fait que tu ne peux pas utiliser directement les noms de fichiers à ce que j'ai compris.

    Plutôt que d'utiliser l'API Win32, renseigne toi sur ce point. Tu as par exemple des fonctions comme g_win32_locale_filename_from_utf8, ou g_filename_to_utf8. Je ne peux pas t'en dire plus, je n'ai jamais trop compris comment ça marchait, mais si tu as un peu de temps à consacrer, le résultat de ta recherche m'intéresse
    Je n'étais pas au courant. Je testerai alors.

Discussions similaires

  1. [débutant] lancer une application par la console
    Par LeBabouin dans le forum Ubuntu
    Réponses: 1
    Dernier message: 29/04/2008, 18h05
  2. Lancer une application par applet
    Par maikof dans le forum Applets
    Réponses: 3
    Dernier message: 18/10/2007, 17h26
  3. lancer des modules par défaut
    Par troumad dans le forum Debian
    Réponses: 2
    Dernier message: 17/12/2006, 21h05
  4. lancer une application par click sur son document
    Par philippe V dans le forum Visual C++
    Réponses: 3
    Dernier message: 14/12/2006, 17h12
  5. Réponses: 2
    Dernier message: 05/12/2003, 11h37

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