J'aimerai faire un setup qui lui même exécute d'autres fichiers qu'il preinstall.
J'ai donc fait le code suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
[Setup]
AppName=My Program
AppVerName=My Program
DefaultDirName={app}\My Program
DefaultGroupName=My Program
 
[Files]
Source: F:\Utilitaires\Base de données\Mysql Odbc\MyODBC-3.51.11-1-win.exe; DestDir: {app}; AfterInstall: FileExec('{app}\MyODBC-3.51.11-1-win.exe')
 
[*Code]
procedure FileExec(FileName : string);
var
  ResultCde: Integer;
begin
  if Exec(FileName, '', '', SW_SHOW, ewWaitUntilTerminated, ResultCde) then
  begin
    MsgBox(Format('Exit code = %d', [ResultCde]), mbInformation, mb_Ok);
  end;
end;
Malheureusement il ne fonctionne pas (Le * d'ajouté dans le code ci dessus est voulu pour qu'il apparaisse sur le forum ^^).
J'ai le message d'erreur suivant :

Internal error : An attempt was made to expand the "app" constant before it initialized.
Donc en clair, l'installeur n'arrive pas à initialiser la constante {app}. Pourtant cela ne devrait pas gêner vu que l'action doit se faire après l'installation du fichier sur le disc (Où alors j'ai rien compris à AfterInstall ).

Si vous voyez d'où vient le problème je suis preneur.

Merci ^^