1. 程式人生 > >inno setup 一些技巧

inno setup 一些技巧

每次只允許執行一個安裝包程式

#define MyAppName "UltraISO"

[Setup]
AppMutex={#MyAppName}

[Messages]
SetupAppRunningError=安裝程式已經在執行。%n%n請按“取消”退出。

[Code]
procedure InitializeWizard();
begin
  CreateMutex('{#MyAppName}');
end;

解除安裝時檢測程式是否在執行
function InitializeUninstall(): Boolean;
var
IsRunnin : UINT;
begin
   Result :=true; //安裝程式繼續
IsRunnin:=FindWindowByWindowName('程式視窗標題名稱');
while IsRunnin > 0 do
begin

    if Msgbox('安裝程式檢測到客戶端正在執行。' #13#13 '您必須先關閉它然後單擊“是”繼續安裝,或按“否”退出!', mbConfirmation, MB_YESNO) = idNO then
    begin
      Result :=false; //安裝程式退出
      IsRunnin :=0;
    end else begin
      Result :=true; //安裝程式繼續
      IsRunnin:=FindWindowByWindowName('程式視窗標題名稱');
    end;
end;
end;
點選退出安裝不提示
procedure CancelButtonClick(CurPageID: Integer; var Cancel, Confirm: Boolean);
begin
  Confirm := False;
end;