2、
inno setup實現的壓縮包原始碼。
; -- simulatorsetup.iss --[code]
varerrorcode: integer;
isrunning: integer;
resultstr: string;
resultcode: integer;
// 安裝時判斷客戶端是否正在執行
//函式initializesetup(): boolean;為執行安裝程式前的預處理部分,返回值為true則執行安裝過程,為false則停止安裝
function initializesetup(): boolean;
begin
result :=true; //安裝程式繼續
//程式已經安裝在你的系統中了!這個是提示安裝過。你可以設定其他語言說明 例如 已安裝或重複安裝
//為安裝目錄檔案資料夾,同理如果是其他目錄更改目錄即可!
if regvalueexists(hkey_local_machine, 'software\simulator\simulator\settings', 'path') then
begin
result :=true;
if msgbox('"**工具"已經安裝在你的系統上了!' #13#13 '您是否需要重新安裝,單擊"是"繼續安裝,或按"否"退出!', mbinformation, mb_yesno) = idno then
begin
result :=false; //安裝程式退出
isrunning :=0;
end else begin
result :=true; //安裝程式繼續
isrunning:=findwindowbywindowname('xve**');
while isrunning<>0 do
begin
if msgbox('安裝程式檢測到"**工具"客戶端正在執行。' #13#13 '您必須先關閉它然後單擊"是"繼續安裝,或按"否"退出!', mbconfirmation, mb_yesno) = idno then
begin
result :=false; //安裝程式退出
isrunning :=0;
end else begin
result :=true; //安裝程式繼續
isrunning:=findwindowbywindowname('xve**');
//安裝程式前解除安裝原來安裝的程式
if regquerystringvalue(hklm, 'software\simulator\simulator\settings', 'uninstallstring', resultstr) then
begin
resultstr := removequotes(resultstr);
exec(resultstr, '/silent', '', sw_hide, ewwaituntilterminated, resultcode);
end;
end;
end;
end;
end;
end;
//解除安裝**工具提示資訊處理,解除安裝時判斷客戶端是否正在執行
function initializeuninstall(): boolean;
begin
result := true;
isrunning:=findwindowbywindowname('xve**');
while isrunning<>0 do
begin
if msgbox('安裝程式檢測到"**工具"客戶端正在執行。' #13#13 '您必須先關閉它然後單擊"是"繼續安裝,或按"否"退出!', mbconfirmation, mb_yesno) = idno then
begin
result :=false; //安裝程式退出
isrunning :=0;
end else begin
result :=true; //安裝程式繼續
isrunning:=findwindowbywindowname('xve**');
end;
end;
end;
[setup]
;安裝前需要使用者知道的資訊頁面的內容,在這裡我們用f&q.txt中的內容作為資訊內容,如果沒有該條語句則安裝程式沒有資訊頁面
;infobeforefile= "snsmteframe\f&q.txt"
;配置安裝路徑頁面開關,賦值為yes,則不顯示該頁面,不要使用者配置安裝位置,而是通過defaultdirname獲取
disabledirpage=no
;安裝程式的「歡迎」介面上的程式名字和程式版本號
defaultdirname= \simulator
;禁用新增到program files程式組的頁面,不建立任何圖示到「開始->程式選單」
defaultgroupname=**工具
;協議書(按同意之前要先看的那個)
;licensefile=c:\documents and settings\administrator\桌面\使用者使用協議.txt
; 安裝完成後的話
;infoafterfile=c:\documents and settings\administrator\桌面\安裝後說明.txt
;解除安裝程式的圖示及解除安裝頁面顯示的程式名字
uninstalldisplayname=uninstallsimulator
;壓縮方式
compression=lzma
solidcompression=yes
;不需要管理許可權也能安裝
privilegesrequired=none
;該關鍵字就是用來防止安裝程式時當前的應用程式正在執行,而且它也可以防止使用者解除安裝正在執行的應用程式。
;說明: 如果使用者要為當前的應用程式公升級為新的版本,然而當前的應用程式正在執行,該關鍵字就是用來防止這類事情的發生的,而且它也可以防止
;使用者解除安裝正在執行的應用程式。它指定了乙個或多個同名互斥體的名稱(多個互斥體用逗號隔開),安裝程式和解除安裝程式將會在啟動時檢查,如果存
;在,安裝程式/解除安裝程式將顯示如下的資訊:「[安裝程式或解除安裝程式] 檢測到 [應用程式] 現在正在執行。請立即關閉它的全部例項,然後單機『確定』繼續
;,或者『取消』退出。」 如果你要使用這個關鍵字就必須在你的應用程式中以該關鍵字指定的名稱新增乙個同名的互斥體。例如在 delphi 和 c 中建立如
;下顯示的同名互斥體,該**應該在應用程式啟動是被執行。 delphi: createmutex(nil, false, 』myprogramsmutexname』); c: createmutex(nu
;ll, false, "myprogramsmutexname"); 並不是必需在應用程式被結束之前顯示的銷毀同名互斥體物件,系統會自動完成此功能,也不推薦你這樣
;做,因為理想狀態下同名互斥體物件必須存在直到程序被完全終止。 注意在 windows 下同名互斥體是大小寫敏感的。 要想獲得有關同名互斥體的
;檔案版本
;versioninfoversion=v1.0
[tasks]
;這個段是只選的。它定義安裝程式在執行安裝期間所有由使用者定製的任務。這些任務以選項框和單選項形式在附加任務嚮導頁中出現
; 注意: 下面的條目包含乙個中文用語 (「建立桌面快捷方式」和「新增快捷方式」)。如果需要你可以翻譯為其它語言。
name: "desktopicon"; description: "建立桌面快捷方式"; groupdescription: "新增快捷方式:"; flags: checkedonce
; 注意: 下面的條目包含乙個中文用語 (「建立快速執行欄快捷方式」和「新增快捷方式」)。如果需要你可以翻譯為其它語言。
name: "quicklaunchicon"; description: "建立快速執行欄快捷方式"; groupdescription: "新增快捷方式:"; flags: checkedonce
[files]
;複製檔案,source後面的路徑名為相對本指令碼setup.iss儲存位置的相對路徑,destdir後的路徑為安裝程式需要將檔案複製到的目標路徑,
[run]
;[run] 段是可選的,用來指定程式完成安裝後、在安裝程式顯示最終對話方塊之前要執行的程式
;安裝完成後執行**的loader.exe程式
[uninstallrun]
[languages]
;新增中文包,使安裝介面為中文,否則預設為英文安裝介面
name: "cn"; messagesfile: "d:\program files\inno setup 5\languages\chinesesimp-11-5.1.0.isl"
[icons]
[registry]
; start "software\my company\my program" keys under hkey_current_user
; and hkey_local_machine. the flags tell it to always delete the
; "my program" keys upon uninstall, and delete the "my company" keys
; if there is nothing left in them.
root: hkcu; subkey: "software\simulator"; flags: uninsdeletekeyifempty
root: hkcu; subkey: "software\simulator\simulator"; flags: uninsdeletekey
root: hklm; subkey: "software\simulator"; flags: uninsdeletekeyifempty
root: hklm; subkey: "software\simulator\simulator"; flags: uninsdeletekey
Inno Setup 安裝製作應用
在inno setup安包製作的時候 會發展專案下的子資料夾會 生成到主檔案下面。導致程式無法使用。setup 生成新的guid,點選 工具 在ide中生成guid。defaultdirname defaultgroupname outputdir e testsetup outputbasefil...
INNO setup 製作安裝包
inno setup 簡介 inno setup 是一款免費的安裝製作工具,簡潔而強大,支援 pascal 指令碼,既有適合新手的指令碼嚮導,也有適合高手的的指令碼編輯器。inno setup是乙個不可多得的安裝製作軟體。常見的 inno setup安裝包製作思路 指令碼嚮導 預設 修改 diy 學...
Inno setup 製作安裝包
297329588szh 163.com 環境 win7 64位 inno setup5.5.9 工具 setup官網 使用步驟 2.給工具製作的出來的安裝包程式配置中文的安裝介面語言 因為工具沒有預設的中文支援,所以第一次使用的時候需要自己編寫中文翻譯檔案,這裡命名為chinese.isl,在把檔...