Vala. Ejecutar un programa externo [solucionado]

Fernando Toselli intosnet en gmail.com
Mar Mayo 10 19:12:59 CLT 2011


El mar, 10-05-2011 a las 16:11 -0400, Daniel Molina Wegener escribió:
> On Tuesday 10 May 2011,
> Fernando Toselli <intosnet en gmail.com> wrote:
> 
> > El mar, 10-05-2011 a las 15:42 -0400, Daniel Molina Wegener escribió:
> > > On Tuesday 10 May 2011,
> > > 
> > > Fernando Toselli <intosnet en gmail.com> wrote:
> > > > Hola gente, en estos dias me puse a jugar un poco con vala, la verdad
> > > > es que esta muy linda la idea, me gusta. Estoy haciendo un
> > > > programita zonzo como para ir viendo algo, y me he trabado en lo
> > > > siguiente: quiero tener un botoncito gtk que dispare un programa
> > > > externo, ej. Firefox. Todo el tema gtk lo domino bastante porque
> > > > hace varios años que trasteo con mono, lo que no se es como decirle
> > > > a glib que me ejecute un programa externo. Alguien tiene una soguita
> > > > para ir tirando?
> > > > 
> > >   En que lenguaje? C# de Mono o C plano?
> > > 
> > > Atte.
> > 
> > Hola, el tema es asi, vala genera codigo c que luego se compila con gcc,
> > yo lo que quiero, es desde vala escribir el codigo de un boton que me
> > dispare firefox
> > 
> > 
> > codigo vala
> > ...
> > btn_ff.clicked.connect (sale_firefox)
> > ...
> > 
> > private void sale_firefox () {
> > 	como_disparo_firefox_desde_aqui.
> > }
> > 
> > 
> > Me gustaria que GLib sea el encargado de disparar el proceso, para
> > asegurarme que mi app sea multiplataforma. Tampoco necesito tener
> > control sobre el proceso, solamente que lo ejecute.
> 
>   Puede ser fork(2) + exec*(2)
> 
>   O bien (muy chanta) con system(2)
> 
> > 
> > ---
> > en mono lo hacia con System.Diagnostic.Process.Start();
> > 
> > Saludos y gracias,
> > Fernando Toselli
> 
> Atte.

Gracias gente por la ayuda gente, dejo la solucion por si le sirve a
alguien mas:

private void btn1_clicked () {
  try {
    GLib.Process.spawn_command_line_async (firefox) );
  } catch (Error e) {
    stderr.printf ("%s\n", e.message); 
  }
}

Si esta corriendo en windows en se ejecuta:
"'C:\\Archivos de programa\\Mozilla Firefox\\firefox.exe'"





Más información sobre la lista de distribución Linux