Cita:
Empezado por seoane
Luego en el dpr de nuestra aplicación, colocamos esto al principio:
|
Todo esto está muy bien, pero se pierde la idea original de
no tener que codificar nada, sólo incluir un archivo. Dándole vueltas un poco creo que he encontrado una solución.
Donde dice:
Código Delphi
[-]
const
sMutex = '10D73234-C9F7-4C2D-BC7E-39B5820AF456';
sActivar = '3F154732-CCDE-4BC7-9439-AFCD3BCFA84D';
var
mActivar : Cardinal;
Mutex : Cardinal;
PrevWndProc : TFarProc;
hay que cambiar a:
Código Delphi
[-]
var
sMutex: String = '10D73234-C9F7-4C2D-BC7E-39B5820AF456';
sActivar: String = '3F154732-CCDE-4BC7-9439-AFCD3BCFA84D';
mActivar : Cardinal;
Mutex : Cardinal;
PrevWndProc : TFarProc;
es decir,
promovemos las constantes a variables inicializadas.
Luego agregamos un procedimiento:
Código Delphi
[-]
procedure LeerConstantes(var sActivar, sMutex: String);
var
Archivo: TIniFile;
sArchivo: String;
begin
sArchivo := ExtractFilePath(Application.ExeName) + 'uiapp.ini';
if FileExists(sArchivo) then
begin
Archivo := TIniFile.Create(sArchivo);
try
sActivar := Archivo.ReadString('constantes', 'activar', sActivar);
sMutex := Archivo.ReadString('constantes', 'mutex', sMutex);
finally
Archivo.Free;
end;
end;
end;
Este procedimiento busca el archivo uiapp.ini en el directorio de la aplicación y sí existe, cambia los valores que se le pasan por los que tenga ese archivo.
Finalmente se introduce la llamada a LeerConstantes al principio:
Código Delphi
[-]
initialization
LeerConstantes(sActivar, sMutex);
try
Registrar;
except
Activar;
Halt;
end;
Así, el programador final sólo tiene que agregar el uiapp.pas en el
uses del dpr e incluir un ini en su directorio:
Código:
[constantes]
activar=0E69F5F8-5AB5-4A31-B2DF-6A2467DEAC63
mutex=24B85122-DEEB-4939-8C34-5DF11B89D0B9
// Saludos