Utilizamos cookies propias y de terceros. [Más información sobre las cookies].
Política de cookies
Proyecto AjpdSoft

· Inicio
· Buscar
· Contactar
· Cookies
· Descargas
· Foros
· Historia
· Nosotros
· Temas
· Top 10
· Trucos
· Tutoriales
· Wiki
Ejecutar aplicación y esperar a que termine - Delphi
Lenguaje de programación Borland Delphi


Os mostramos cómo ejecutar una aplicación externa con Delphi y esperar a que finalice. Nuestra aplicación Delphi no podrá ser enfocada ni mostrada hasta que no termine (se cierre) la aplicación externa ejecutada.

Utilizaremos la función WaitForSingleObject para esperar hasta que la aplicación externa se cierre y utilizaremos la función CreateProcess para ejecutar la aplicación externa.

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes,
  Graphics, Controls, Forms, Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    btEjecutar: TButton;
    txtAplicacion: TEdit;
    procedure btEjecutarClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

function ejecutarProceso (nombreProceso : string) : Cardinal;
var
  infoInicio : TStartupInfo;
  infoProceso : TProcessInformation;
begin
  Result := 0;

  FillChar (infoInicio, SizeOf(infoInicio), 0);
  infoInicio.cb := SizeOf(infoInicio);

  if CreateProcess(PChar(nombreProceso), nil,
      nil, nil, false, 0, nil, nil,
      infoInicio, infoProceso) then
    Result := infoProceso.hProcess;
end;

procedure TForm1.btEjecutarClick(Sender: TObject);
var
  numProceso : Cardinal;
begin
  Application.Minimize;
  numProceso := ejecutarProceso (txtAplicacion.Text);
  if numProceso <> 0 then
    WaitForSingleObject (numProceso, INFINITE);
  Application.Restore;
end;

end.




Publicado el: 2007-08-20

Visita nuestro nuevo sitio web con programas y contenidos actualizados: Proyecto A