Vamos a poner un poco de código para aclara un poco el asunto. Como ya te dijeron la mejor opción es usar archivos de recursos. Lo primero es definir una estructura (un record) que contendrá los parámetros. Esta definición debe ser común a ambos programas, el que modifica y el que ha de ser modificado.
Por ejemplo:
Código Delphi
[-]
TParametros = packed record
Parametro1: Integer;
Parametro2: Integer;
Parametro3: String[255]; end;
Ahora para leer los parámetros desde nuestra aplicación utilizaremos algo como esto:
Código Delphi
[-]
var
Parametros: TParametros;
begin
if FindResource(GetModuleHandle(nil),MAKEINTRESOURCE(1001),RT_RCDATA) <> 0 then
with TResourceStream.CreateFromID(GetModuleHandle(nil),1001,RT_RCDATA) do
try
Read(Parametros,Sizeof(Parametros));
with Parametros do
ShowMessage(Format('P1=%d P2=%d P3=%s',[Parametro1,Parametro2,Parametro3]));
finally
Free;
end;
end;
Para actualizar los parámetros desde otra aplicación, haríamos algo como esto:
Código Delphi
[-]
var
hExe: THandle;
Parametros: TParametros;
begin
Parametros.Parametro1:= 10;
Parametros.Parametro2:= 20;
Parametros.Parametro3:= 'Hola mundo';
hExe:= BeginUpdateResource(PChar(ExtractFilePath(ParamStr(0))+'Ejemplo35a.exe'),FALSE);
if hExe <> 0 then
begin
UpdateResource(hExe,RT_RCDATA,MAKEINTRESOURCE(1001),0,@Parametros,Sizeof(Parametros));
EndUpdateResource(hExe,FALSE);
end;
end;
Bueno, aquí te dejo el código, empaquetado y listo para usar. Primero compila el Ejemplo35a, y comprueba que no lee los parámetros. Ahora compila el Ejemplo35b y pulsa en "Actualizar parámetros", entonces ejecuta de nuevo el Ejemplo35a y veras que ahora ya lee los nuevos parámetros.