Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Pasar parámetros entre programas (https://www.clubdelphi.com/foros/showthread.php?t=56051)

lacovera 06-05-2008 13:50:13

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

santus 06-05-2008 20:10:09

holas
Se me ocurre que podrias enviar un mensaje al sistema, y que tu aplicación tome ese mensaje y lea su contenido.
Aca te dejo un link que te explica como crear mensajes.
Igualmente antes busca en el foro... he visto algo de variables superglobales... aunque ni idea si eso te serviría.. no te quiero hablar de algo que no conozco ;) Aqui te dejo un link.

Suerte y me gustaria que si utilizas alguna solución de estas, y te funciona, lo comentes aqui en el este mismo hilo. Gracias.

CFPA86 07-05-2008 03:11:51

Hola lacovera, quizas no es mas facil pasar el parametro por medio del registro de windows, me explico Ejecuto un primer programa calculo un dato X ese dato lo grabo en el registro de windows, luego ejecuto el segundo programa donde leo el registro y la vble donde esta el dato X.
Creo puede ser una de tantas soluciones posibles


La franja horaria es GMT +2. Ahora son las 01:34:13.

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