Cita:
Empezado por Lepe
El hecho de hacer un programa para añadir alias y otro para borrar, me parece demasiado, yo al menos cambiaría el nombre del programa "AddAlias" por "AliasManager" con una linea de comando:
|
"Robandome" la buena idea de Lepe les dejo aqui las modificaciones que hice.
Código Delphi
[-]
program AliasManager;
uses
Windows, SysUtils, BDE;
var
GType: string; GAlias: string;
GDriver: string;
GAliasDir: string;
FParams: string;
FDrvName: string;
FDelete: boolean;
i: integer;
function StrToOem(const AnsiStr: string): string;
begin
SetLength(Result, Length(AnsiStr));
if Length(Result) > 0 then
CharToOem(PChar(AnsiStr), PChar(Result));
end;
begin
for i := 1 to ParamCount do
begin
case i of
1: GType := ParamStr(1);
2: GAlias := ParamStr(2);
3: GAliasDir := ParamStr(3);
4: GDriver := ParamStr(4);
end;
end;
if GType = '/DEL' then
FDelete := True
else FDelete := False;
if GAliasDir = '' then GAliasDir := ExtractFilePath(ParamStr(0))+'Tables';
FDrvName := GDriver;
if (CompareText(GDriver, szCFGDBSTANDARD) = 0) or
(CompareText(GDriver, szPARADOX) = 0) or
(CompareText(GDriver, szDBASE) = 0) or
(CompareText(GDriver, szFOXPRO) = 0) or
(CompareText(GDriver, szASCII) = 0) then
begin
if (CompareText(GDriver, szCFGDBSTANDARD) = 0) then FDrvName := szPARADOX;
FParams := Format('%s:"%s"', [szCFGDBPATH, GAliasDir]) +
Format(';%s:"%s"', [szCFGDBDEFAULTDRIVER, GDriver]) +
Format(';%s:"%s"', [szCFGDBENABLEBCD, szCFGFALSE]);
end else begin
if (CompareText(GDriver, 'INTRBASE') = 0)
then FParams := Format('%s:"%s"', [szSERVERNAME, GAliasDir])
else FParams := Format('%s:"%s"', [szDATABASENAME, GAliasDir]);
end;
DbiInit(nil);
try
if FDelete then
try
DbiDeleteAlias(nil, PChar(GAlias));
except
end
else try
DbiDeleteAlias(nil, PChar(GAlias)); DbiAddAlias(nil, PChar(StrToOem(GAlias)),
PChar(StrToOem(FDrvName)),
PChar(FParams), True);
DbiCfgSave(nil, nil, True);
except
end;
finally
DbiExit();
end;
end.
Por otro lado el programa de instalación se ve así
Cita:
[Files]
Source: "D:\Installers\AliasManager\AliasManager.exe"; DestDir: "{app}"
[Icons]
Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}"
[Run]
Filename: "{app}\AliasManager.exe"; Parameters: "/ADD MANAGER ""{app}""\tables PARADOX"
[UninstallRun]
Filename: "{app}\AliasManager.exe"; Parameters: "/DEL MANAGER"
|
Ya he probado instalando, reinstalando cambiando el path del sistema y desinstalando.
Hizo todo lo que se esperaba.
Saludos.