![]() |
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 |
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. |
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