2010-05-25 34 views
3

我爲我的一些遊戲創建了一個安裝程序,我希望卸載程序問我是否要保存我的遊戲文件。 類似這樣的:當我執行uninstall.exe問我'你想保留所有保存的遊戲嗎?'是或否。如果我點擊YES,我的保存文件將保留,我的程序文件將被卸載,如果我點擊NO,我的程序文件將保存文件被卸載。 什麼是InnoSetup的PASCAL代碼來做到這一點?InnoSetup卸載提問信息 - Pascal編碼

非常感謝!

回答

8

你可以這樣做:


; -- 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;

你想使用最新版本的InnoSetup的作爲,這就是我與測試。上面的示例基於InnoSetup編譯器附帶的UninstallCodeExample.iss。

我添加了一行代碼來顯示如何刪除文件。它調用DeleteFile函數。您需要爲每個要卸載的文件添加一個DeleteFile,該文件不在[Files]部分。

3

可能與您的問題有關,如果您只是想要將卸載消息從「您確定要徹底刪除%1及其所有組件嗎?」到別的東西,你可以通過修改其信息做到這一點,就像

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

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

+0

謝謝!我正要創建一個自定義頁面。 – Jason 2015-06-12 15:24:31