Ver Mensaje Individual
  #1  
Antiguo 06-05-2008
lacovera lacovera is offline
Miembro
 
Registrado: dic 2006
Posts: 87
Reputación: 20
lacovera Va por buen camino
Pasar parámetros entre programas

Buenas a todos, tengo un problema que me lleva de cabeza!!!

He de llamar, desde mi programa realizado en Delphi2006 a otro también mio pero en Delphi6 (es que uso para el programa en delphi6 un api que aun no está para el 2006).
La cuestión es que le tengo que pasar parámetros desde el D2006 al D6, eso no hay problema, lo hago con la siguiente función

procedure Tdmr.llamarprograma(const ruta,args: string; esperar: boolean);
var
salida: DWord;
PSEI: PShellExecuteInfo;
SEI: TShellExecuteInfo;
begin
if not FileExists(ruta)
then Exit;
with SEI do begin
hInstApp := 0;
lpVerb := nil;
lpDirectory := nil;
nShow := SW_NORMAL;
cbSize := SizeOf(SEI);
lpFile := PChar(ruta);
wnd := GetDesktopWindow;
lpParameters := Pchar(args+#0);
fMask := SEE_MASK_NOCLOSEPROCESS;
end;
PSEI:= @SEI;
ShellExecuteEx(PSEI);
if not esperar then Exit;
repeat
salida := WaitForSingleObject(
SEI.hProcess, 500);
Application.ProcessMessages;
until (salida <> WAIT_TIMEOUT);
end;


Y luego simplemente desde mi D2006 hago ésto

dmr.llamarprograma(EjecutableD6.exe,pchar(presupuesto),true);


El campo PRESUPUESTO se lo tengo que pasar a D6 para que realice la acción que le pido, y el true del final es para que el programa D2006 espere a que cierre el de D6 para seguir ejecutándose, la cuestión es (después de tanto rollo) ¿Sabeis si hay alguna forma de, al cerrar mi programa de D6 pueda obtener también un valor al igual que se los paso? Lo quiero simplemente por saber si le da a cancelar o no

Un saludo y muchas gracias
Responder Con Cita