2010-05-25 3 views
3

J'ai créé un programme d'installation pour certains de mes jeux et je veux que le programme de désinstallation me demande si je veux enregistrer mes fichiers de jeu. Quelque chose comme ceci: quand j'exécute le uninstall.exe pour me demander 'Voulez-vous garder tous les jeux sauvegardés?' Oui ou non. Si j'appuie sur OUI, mes fichiers de sauvegarde sont conservés et mes fichiers de programme sont désinstallés. Si je clique sur NON, mes fichiers de programme, y compris les fichiers à sauvegarder, doivent être désinstallés. Quel est le code PASCAL pour InnoSetup?InnoSetup Désinstaller Demander Message - Codage Pascal

Merci beaucoup!

Répondre

8

Vous pouvez faire quelque chose comme:


; -- UninstallCodeExample1.iss -- 
; 
; This script shows various things you can achieve using a [Code] section for Uninstall 
[Setup] 
AppName=My Program 
AppVerName=My Program version 1.5 
DefaultDirName={pf}\My Program 
DefaultGroupName=My Program 
UninstallDisplayIcon={app}\MyProg.exe 
OutputDir=userdocs:Inno Setup Examples Output 

[Files] 
Source: "MyProg.exe"; DestDir: "{app}" 
Source: "MyProg.chm"; DestDir: "{app}" 
Source: "Readme.txt"; DestDir: "{app}"; Flags: isreadme 

[Code] 
function InitializeUninstall(): Boolean; 
begin 
    Result := MsgBox('InitializeUninstall:' #13#13 'Uninstall is initializing. Do you really want to start Uninstall?', mbConfirmation, MB_YESNO) = idYes; 
    if Result = False then 
    MsgBox('InitializeUninstall:' #13#13 'Ok, bye bye.', mbInformation, MB_OK); 
end; 

procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep); 
var 
mRes : integer; 
begin 
    case CurUninstallStep of 
    usUninstall: 
     begin 
     mRes := MsgBox('Do you want to remove all files?', mbConfirmation, MB_YESNO or MB_DEFBUTTON2) 
     if mRes = IDYES then 
      begin 
      MsgBox ('Really remove the files', mbInformation, MB_OK) 
      DeleteFile('path\filename.ext'); 
      End 
     else 
      MsgBox ('Don''t remove the game files', mbInformation, MB_OK);   
     // ...insert code to perform pre-uninstall tasks here... 
     end; 
    end; 
end;

Vous voulez utiliser la dernière version de InnoSetup comme c'est ce que je l'ai testé avec. L'exemple ci-dessus est basé sur le UninstallCodeExample.iss inclus avec le compilateur InnoSetup.

J'ai ajouté une ligne de code pour montrer comment supprimer un fichier. Il appelle la fonction DeleteFile. Vous devez ajouter un fichier DeleteFile pour chaque fichier que vous souhaitez supprimer lors de la désinstallation qui ne figure pas dans la section [Fichiers].

3

Peut-être est-il lié à votre question, si vous voulez juste changer le message de désinstallation de "Êtes-vous sûr de vouloir supprimer complètement% 1 et tous ses composants?" à quelque chose d'autre, vous pouvez le faire en modifiant son message, comme

[Messages] 
ConfirmUninstall=Are you really really sure you want to remove %1? 

ref: http://www.jrsoftware.org/ishelp/index.php?topic=messagessection

+0

Merci! J'étais sur le point de créer une page personnalisée. – Jason