Ver Mensaje Individual
  #4  
Antiguo 26-05-2003
José Arce José Arce is offline
Miembro
 
Registrado: may 2003
Ubicación: Mollet del Valles (Barcelona)
Posts: 35
Reputación: 0
José Arce Va por buen camino
Hola a todos, yo uso lo siguiente para lanzar un exe desde mi programa utilizando CreateProcess, uso delphi3, no creo que haya problemas para una versión superior.

Un saludo Jose Arce



uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Menus, StdCtrls, ComDrv32, ExtCtrls, Db, DBTables, BDE, ComCtrls,
OleCtrls, sase_TLB, TablPack;

// Son los uses que tengo, no me acuerdo cual se tiene que incluir //
----------------------------------------------------------------------------------------------------------

private
function Ejecutar(const AppName, Params: string): THandle;
procedure Esperar(H: THandle);
{ Private declarations }
-------------------------------------------------------------------------------------------------

function Tfprincipal.Ejecutar(const AppName, Params: string): THandle;
var
ProcInfo: TProcessInformation;
Info: TStartupInfo;
begin
FillChar(Info, SizeOf(Info), 0);
Info.cb := SizeOf(Info);
Info.dwFlags := STARTF_USESHOWWINDOW;
Info.wShowWindow := SW_SHOWNORMAL;
if not CreateProcess(nil, PChar(AppName + ' ' + Params), nil, nil,
False, 0, nil, nil, Info, ProcInfo) then
raise Exception.Create('No se puede iniciar la aplicación');
Result := ProcInfo.hProcess;
end;



// Hago una espera de 100 milisegundos antes de lanzar la aplicacion //
procedure Tfprincipal.Esperar(H: THandle);
begin
while WaitForSingleObject(H, 100) = WAIT_TIMEOUT do
begin
Application.ProcessMessages;
if Application.Terminated then Break;
end;
end;



// Lanzo la aplicación al pulsar un boton //
procedure TFPrincipal.Cruzados1Click(Sender: TObject);
begin
try
Esperar(Ejecutar('c:\giropesw\Listados.exe', ''));
finally

end;
end
Responder Con Cita