Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > Lazarus, FreePascal, Kylix, etc.
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-05-2008
abelaquino abelaquino is offline
Registrado
 
Registrado: abr 2008
Posts: 6
Poder: 0
abelaquino Va por buen camino
Exclamation Ejecutar programa externo con Lazarus

Tengo un problema al intentar ejecutar un programa externo con un launcher creado con lazarus utilizando el código que sigue a continuación....

Este código funciona en windows perfectamente, mi problema es con Linux, al ejecutarlo desde una terminal ejecuta la aplicación lanzada por mi Launcher perfectamente, accediendo a la carpeta en forma grafica tambien ejecuta perfectamente, pero cuando creo un lanzador en el escritorio llamando al launcher no me ejecuta nada, el codigo que creo no esta funcionando es el proc GetCurrentDir mas abajo mostrado...

Necesito una forma de obtener el nombre del directorio de mi launcher...
como ya les dije mas arriba, el GetCurrentDir funciona solo si estas ubicado en el directorio del launcher..

Desde ya muchas gracias
.. Espero una ayudita...



// Esto es un programa de demostración que enseña como lanzar
// un programa externo.
program launcher;

// Aquí incluimos archivos que tienen funciones y procedimientos
// útiles que necesitaremos.
uses
Classes, SysUtils, Process;

// Definición de "AProcess" como una variable
// de tipo "TProcess"
var
AProcess: TProcess;
DirectorioName: string;
// Aquí comienza a ejecutarse nuestro programa
begin

// Ahora se creará el objeto TProcess, y
// lo asignamos a la variable AProcess.
AProcess := TProcess.Create(nil);

// Le decimos al nuevo AProcess la orden que debe ejecutar.
// Vamos a utilizar el compilador FreePascal

//Obtenemos el nombre del directorio actual
DirectorioName := GetCurrentDir;
AProcess.CommandLine := 'wine '+ DirectorioName + '/' + ApplicationName + '.lin';

// writeln('wine ' + DirectorioName ApplicationName + '.lin');
// Application.;


// Definiremos una opción para cuando se ejecute
// el programa. Esta opción hará que nuestro programa
// no continúe hasta que el programa que lancemos
// haya terminado de ejecutarse. vvvvvvvvvvvvvv

// AProcess.Options := AProcess.Options + [poWaitOnExit];


// Ahora que AProcess conoce cuál es la orden,
// lo ejecutamos.
AProcess.Execute;

// Esto ocurrirá cuando ppc386 termine de ejecutarse.
AProcess.Free;
end.
Responder Con Cita
  #2  
Antiguo 12-05-2008
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Si dices que el programa arranca correctamente desde un terminal entonces dudo que el problema sea del código fuente.

Asegúrate de que pones la orden completa, con toda la ruta desde la raíz, en el campo de ejecución del lanzador. En mi escritorio (Xfce) este campo se llama "Orden" pero en otros escritorios (Gnome, KDE, etc) puede que se llame diferente. También debes tener en cuenta si el programa necesita de un terminal (o consola de texto). En GNU/Linux esto no suele dar muchos problemas, aunque según cómo utilices dicho terminal (el famoso "stdout") puede que la aplicación se vuelva "invisible", es decir, que se ejecuta pero no se ve.
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Ejecutar programa externo desde PHP fide PHP 10 07-02-2008 21:21:54
Ejecutar mi programa hecho en Lazarus sobre Linux mr_pascale Lazarus, FreePascal, Kylix, etc. 9 11-08-2007 18:54:25
programa externo hugoacosta API de Windows 2 17-04-2006 19:44:57
congelar programa externo. kalisto Varios 8 23-06-2005 20:03:10
Ejecutar un programa externo desde un programa de Delphi Roger_Fernandez Varios 3 02-09-2004 18:05:36


La franja horaria es GMT +2. Ahora son las 00:01:44.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi