Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 06/05/2009, à 18:10

kevlar

[résolu]Executer un programme depuis un autre programme en Gtk

Bonjour à tous ! smile

Pourriez-vous m'indiquer si, depuis une application Gtk, il est possible de lancer un executable, autrement que par les fonctions classiques du C (system, execvp ...)

Merci d'avance.

Je précise, suite à mes recherches préalables sur Internet, que ce n'est pas un problème de "timer" (j'en utilise déjà plusieurs, mais ils sont propres à mon projet).
Concrètement, je souhaite lancer proprement depuis mon projet Gtk, en évitant les failles de sécurité, un programme comme Totem ou xmms.

Dernière modification par kevlar (Le 06/05/2009, à 20:29)

Hors ligne

#2 Le 06/05/2009, à 18:56

rniamo

Re : [résolu]Executer un programme depuis un autre programme en Gtk

http://www.gtkmm.org/docs/glibmm-2.4/do … l#_details

euh, je viens de voir que t'as question est en C : http://library.gnome.org/devel/glib/sta … esses.html

Dernière modification par rniamo (Le 06/05/2009, à 18:57)


< Quelques un des mes programmes  | Cuisine Facile (pour les gourmands) | Fast MVC for PHP >
        \   ^__^
         \  (o o)\_______
            (___)\            )\

Hors ligne

#3 Le 06/05/2009, à 20:28

kevlar

Re : [résolu]Executer un programme depuis un autre programme en Gtk

au fait, un très grand merci pour ton aide précédente concernant SDL. ! big_smile

Hors ligne

#4 Le 06/05/2009, à 20:29

kevlar

Re : [résolu]Executer un programme depuis un autre programme en Gtk

et encore un autre merci pour ton lien, qui est exactement ce que je cherchais. C'est fabuleux, on peut progresser d'arrache-pied sur un projet grâce à des personnes comme toi !
smile

Hors ligne

#5 Le 15/05/2009, à 18:06

kevlar

Re : [résolu]Executer un programme depuis un autre programme en Gtk

Je fais remonter ce fil :
- j'ai compris comment utiliser les fonctions 'spawn' (style g_spawn_async_with_pipes), mais cependant, j'aimerais savoir comment "killer" depuis le programme "père" un processus lancé de cette manière ? La fonction g_spawn_close_pid(pid) peut-elle le faire, sachant que j'ai lu sur le site de Gtk qu'elle n'était pas utile pour les systèmes type Unix ? neutral

Hors ligne

#6 Le 15/05/2009, à 21:13

kevlar

Re : [résolu]Executer un programme depuis un autre programme en Gtk

Bon, ça marche, je mettrai sans doute un bout de listing ... mais est-ce que quelqu'un connaît un moyen propre à Gtk de "tuer" le processus externe ?

Hors ligne

#7 Le 15/05/2009, à 21:34

kevlar

Re : [résolu]Executer un programme depuis un autre programme en Gtk

et voilà pour ceux qui en auront besoin un de ces quatre ...

/*****************************
 executer un lecteur 
 video externe
*****************************/
GPid execute_externe(gchar *programme, gchar *arguments)
{
 gchar  **args;
 GPid pid;
 GError *error = NULL;
 gboolean status;

 args = g_new (gchar *, 3);
	args[0] = g_strdup (programme);                /* programme à lancer                 */
	args[1] = g_strdup (arguments);                /* arguments du programm         */
	args[2] = NULL;                               /* zéro terminal obligatoire            */

 status = g_spawn_async_with_pipes ( NULL,
                                      args,
                                      NULL,
                                      (GSpawnFlags) G_SPAWN_SEARCH_PATH 
		                      | G_SPAWN_DO_NOT_REAP_CHILD,
                                      NULL,
                                      NULL,
                                      &pid,
                                      NULL,
                                      NULL,
                                      NULL,
                                      &error);
 if (status == FALSE) 
   {    
    g_free (args[0]);
    g_free (args[1]);
    g_free (args[2]);

    return -1;
  }
    g_free (args[0]);
    g_free (args[1]);
    g_free (args[2]);

 return pid;
}
/* détruire un programme externe */
int kill_externe(GPid pid)
{
 kill(pid,15);
 return 0;
}

Dernière modification par kevlar (Le 15/05/2009, à 21:34)

Hors ligne

#8 Le 15/05/2009, à 22:02

rniamo

Re : [résolu]Executer un programme depuis un autre programme en Gtk

t'as le pid donc tu peux faire un kill(pid,SIGTERM);


< Quelques un des mes programmes  | Cuisine Facile (pour les gourmands) | Fast MVC for PHP >
        \   ^__^
         \  (o o)\_______
            (___)\            )\

Hors ligne

#9 Le 16/05/2009, à 10:09

kevlar

Re : [résolu]Executer un programme depuis un autre programme en Gtk

Oui, c'est impec ! Au début, ça ne marchait pas, j'avais mal lu la page de man, et j'avais inversé les paramètres de la fonction lol

Hors ligne