salut je creer un programme en C/GTK+ et je voudrais qavoir comment dire a GTK+ va sur cette page internet (c'est a dire lui dire d'ouvrir le navigateur et d'aller sur tel page web )
s'il vous plait aidé moi
salut je creer un programme en C/GTK+ et je voudrais qavoir comment dire a GTK+ va sur cette page internet (c'est a dire lui dire d'ouvrir le navigateur et d'aller sur tel page web )
s'il vous plait aidé moi
Bonjour,
Avec la fonction g_app_info_launch_default_for_uri![]()
ok merci pour votre réponse mais je l'ai déjà en C
c'est plus facile rapide et efficace.
encore merci quand meme
J'ai un peu peur de ta méthode... Vas y, dis nous un peu comment tu l'as fait, parce que si ça utilise la commande system je sens qu'on va rigoler...
eh bien commencer dès maintenant à rigoler car j'utilise la commande system et na !
et ca fonctionne comme sur des roulettes et comme je suis pas du genre a aimé se compliquer la vie j'avance .
Mais si tu voulais bien me dire pourquoi tu en rit de la command system ?
- La commande système va bloquer ton application tant que le programme lancé restera ouvert
- Tu dois choisir arbitrairement le navigateur, que ce passe-t-il si l'utilisateur ne l'a pas installé ? Si ce n'est pas le navigateur par défaut ?
La fonction que je t'ai conseillé résous tous ces problèmes et est très simple à utiliser :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 GError *error = NULL; g_app_info_launch_default_for_uri ("http://www.developpez.com", NULL, &error); if (error != NULL) { g_warning (error->message); }
@gege2061,
J'ai essayé ton code dans une callback par curiosité mais ça marche pas
Il me dit "undefined reference to `g_app_info_launch_default_for_uri'"
J'ai pourtant bien inclus:
#include <gio/gio.h>
Il faut rajouter la bibliothèque gio lors de l'édition de lien aussi.
Malheureusement, il faut souvent se compliquer la vie pour écrire du bon code... Ma remarque n'était pas pour me moquer, c'est juste que system est un peu le piège pour débutants dans lequel on est tous tombés. Tu te rends vite compte que ce n'est pas la commande merveilleuse que tu pensais au départ.
gege2061 a très bien expliqué pourquoi la commande system n'est pas un bon choix. Il y aussi des problèmes de sécurité. Dans 99% des cas, c'est une commande à proscrire, sauf pour un prototype vite fait.
Ok j'ai compris et je vais vite faire de rectifier cette grosse erreur
encore merci a toi Liberforce et à toi gege pour vos interventions
le monde des dévéloppeurs a besoins que de personne comme vous et nul autre![]()
Salut
'ai eu le meme probleme avec g_app_info_launch_default_for_uri
gio/gio.h : Aucun fichier ou répertoire de ce type
je ne sait pas comment ajouter la bibliothèque gio lors de l'édition de lien merci
Il faut une glib assez récente pour gio (glib 2.16), peut être que c'est ça qu'il te manque
Chez moi, la fonction g_app_info_launch_default_for_uri m'affiche une belle erreur sur la console WARNING** 'Aucune application n'est enregistrée pour gérer ce fichier', alors que je l'ai utilisée tel que:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 GError *erreur = NULL; /* Ouverture de la page 'uri' */ g_app_info_launch_default_for_uri(uri, NULL, &erreur); if(erreur) { /* Affichage du message d'erreur */ g_warning(erreur->message); }
Que vaut 'uri' ?
Utilisation de Glade avec Gtk+
Code::Blocks et Gtk+ sous Windows
Programmation orientée objet avec Gtk+ v3
- N'oubliez pas de consulter les FAQ Gtk et les cours et tutoriels Gtk
Bonjour.
Arg, j'ai moi aussi fait l'erreur d'utiliser system. J'utilise Gtk en ruby, gio n'est pas encore implémenté! Il y-a-t-il une autre solution ?
Pour utiliser les programmes par défaut de l'utilisateur en ligne de commande, il suffit de lancer l'uri avec gnome-open! Il a des chances d'être installer puisque Gtk est utilisé. Sinon, il exite l'équivalent X : xdg-open.
Par contre, l'ouverture d'une page html ne bloque pas le programme! gnome-open semble rendre la main.
Partager