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