一個比較完整的Inno Setup 安裝指令碼
- [Setup]
- ; 注: AppId的值為單獨標識該應用程式。
- ; 不要為其他安裝程式使用相同的AppId值。
- ; (生成新的GUID,點選 工具|在IDE中生成GUID。)
- AppId={{A9861883-31C5-4324-BD9A-DC3271EEB675}
- ;程式名
- AppName=ISsample
- ;版本號
- AppVerName=ISsample 1.0.0.0
- ;釋出者名
- AppPublisher=Hkiss
- ;相關連線
- AppPublisherURL=http://zwkufo.blog.163.com
- AppSupportURL=http://zwkufo.blog.163.com
- AppUpdatesURL=http://zwkufo.blog.163.com
- ;預設安裝目錄
- DefaultDirName={pf}\ISsample
- ;預設開始選單名
- DefaultGroupName=ISsample
- ;是否開啟->可選安裝開始選單項
- ;AllowNoIcons=yes
- ;安裝協議
- ;LicenseFile=C:\Example\原始檔案\agreement.txt
- ;安裝前檢視的文字檔案
- ;InfoBeforeFile=C:\Example\原始檔案\Setup_New.txt
- ;安裝後檢視文字檔案
- ;InfoAfterFile=C:\Example\原始檔案\Setup_Old.txt
- ;輸出資料夾
- OutputDir=C:\Example\InnoSetup\out
- ;輸出檔名
- OutputBaseFilename=setup
- ;安裝圖示
- SetupIconFile=C:\Example\原始檔案\title.ico
- ;安裝需要輸入密碼
- ;Password=123
- ;Encryption=yes
- ;壓縮相關
- Compression=lzma
- SolidCompression=yes
- ;可以讓使用者忽略選擇語言相關
- ShowLanguageDialog = yes
- ;備註版本資訊
- VersionInfoCompany=HTTP://www.Hkiss.COM
- VersionInfoDescription=ISsample 漢化增強版
- VersionInfoVersion=1.0.0.0
- VersionInfoCopyright=Copyright (C) 2007-2008 Hkiss
- ;製作選擇語言
- [Languages]
- Name: "chs"; MessagesFile: "compiler:Default.isl" ;LicenSeFile :"C:\Example\原始檔案\chs\agreement.txt"
- Name: "en"; MessagesFile: "compiler:Languages\English.isl";LicenSeFile :"C:\Example\原始檔案\en\agreement.txt"
- ;使用者定製任務
- [Tasks]
- Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
- Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
- Name: "Tasks_1" ; Description:"使用者自定義任務1"; Flags: unchecked
- Name: "Tasks_2" ; Description:"使用者自定義任務2"; Flags: unchecked
- ;選擇了元件才會出現的定製任務
- Name: "Tasks_3" ; Description:"使用者自定義任務3";Components: c1 ; Flags: unchecked
- ;檔案安裝
- [Files]
- ;多語言安裝環境設定 公共引數Languages 來設定
- Source: "C:\Example\原始檔案\enfile.txt"; DestDir: "{app}"; Languages: en ; Flags: ignoreversion
- Source: "C:\Example\原始檔案\chsfile.txt"; DestDir: "{app}"; Languages: chs ; Flags: ignoreversion
- ;使用者自定義任務 Tasks
- Source: "C:\Example\原始檔案\Tasks\tasks_1.txt"; DestDir: "{app}\Tasks"; Flags: ignoreversion ;Tasks : Tasks_1
- Source: "C:\Example\原始檔案\Tasks\tasks_2.txt"; DestDir: "{app}\Tasks"; Flags: ignoreversion ;Tasks :Tasks_2
- Source: "C:\Example\原始檔案\Tasks\tasks_Components.txt"; DestDir: "{app}\Tasks"; Flags: ignoreversion ;Tasks :Tasks_2
- ;使用者定義元件安裝
- Source: "C:\Example\原始檔案\Components\Components_1.txt"; DestDir: "{app}\Components"; Flags: ignoreversion ; Components: a1;
- Source: "C:\Example\原始檔案\Components\Components_2.txt"; DestDir: "{app}\Components"; Flags: ignoreversion ; Components: a2;
- Source: "C:\Example\原始檔案\Components\Components_3.txt"; DestDir: "{app}\Components"; Flags: ignoreversion ; Components: a3;
- Source: "C:\Example \原始檔案\Components\Components_4.txt"; DestDir: "{app} \Components"; Flags: ignoreversion ; Components: a1 a2 a3;
- ;使用者註冊自定義Dll檔案 regserver 註冊 noregerror 不顯示錯誤資訊
- Source: "C:\Example\原始檔案\jmail.dll"; DestDir: "{app}"; Flags: ignoreversion regserver
- ;新增自述檔案
- Source: "C:\Example\原始檔案\ISsample.txt"; DestDir: "{app}"; Flags: ignoreversion
- ;新增一個檔案到快取資料夾{Tmp} deleteafterinstall 安裝後刪除
- Source: "C:\Example\原始檔案\test.exe"; DestDir: "{tmp}"; Flags: ignoreversion deleteafterinstall
- Source: "C:\Example\原始檔案\ISsample.chm"; DestDir: "{app}"; Flags: ignoreversion
- Source: "C:\Example\原始檔案\ISsample.exe"; DestDir: "{app}"; Flags: ignoreversion
- Source: "C:\Example\原始檔案\ISsample.dll"; DestDir: "{app}"; Flags: ignoreversion
- Source: "C:\Example\原始檔案\ISsample.ini"; DestDir: "{app}"; Flags: ignoreversion
- Source: "C:\Example\原始檔案\ISsample.rar"; DestDir: "{app}"; Flags: ignoreversion
- Source: "C:\Example\原始檔案\ISsample_sys.dll"; DestDir: "{win}\System32"; Flags: ignoreversion
- Source: "C:\Example\原始檔案\log\*"; DestDir: "{app}\log"; Flags: ignoreversion recursesubdirs createallsubdirs
- ; 注意: 不要在任何共享系統檔案上使用“Flags: ignoreversion”
- ;安裝型別設定
- [Types]
- Name: Full ;Description:"完全安裝"; Flags: iscustom
- Name: Compact ;Description:"簡潔安裝";
- Name: Custom; Description:"自定義安裝";
- ;元件安裝
- [Components]
- Name: c1; Description: "自定義任務3" ; Types: Full
- Name: a1; Description: "安裝Components_1"; Types: Full Compact Custom ;
- Name: a2; Description: "安裝Components_2"; Types : Full Compact
- Name: a3; Description: "安裝Components_3"; Types : Full
- ;開始選單,桌面快捷方式
- [Icons]
- Name: "{group}\ISsample"; Filename: "{app}\ISsample.exe"
- Name: "{group}\{cm:ProgramOnTheWeb,ISsample}"; Filename: "http://zwkufo.blog.163.com"
- Name: "{group}\{cm:UninstallProgram,ISsample}"; Filename: "{uninstallexe}"
- Name: "{commondesktop}\ISsample"; Filename: "{app}\ISsample.exe"; Tasks: desktopicon
- Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\ISsample"; Filename: "{app}\ISsample.exe"; Tasks: quicklaunchicon
- ;新增一個幫助文擋
- Name: {group}\ISsample 1.0.0.0 幫助文件;Filename: {app}\ISsample.chm
- ;用來在程式安裝完成後 在安裝程式顯示最終對話方塊之前執行程式 常用與執行主程式 顯示自述檔案 刪除臨時檔案
- [Run]
- Filename: "{app}\ISsample.exe"; Description: "{cm:LaunchProgram,ISsample}"; Flags: nowait postinstall skipifsilent
- Filename: "{app}\ISsample.txt"; Description: "檢視顯示自述檔案"; Flags: postinstall skipifsilent shellexec
- ;更改顯示在程式中顯示的訊息文字
- [Messages]
- BeveledLabel=HKiss科技
- ;解除安裝對話方塊說明
- ConfirmUninstall=您真的想要從電腦中解除安裝ISsample嗎?%n%n按 [是] 則完全刪除 %1 以及它的所有元件;%n按 [否]則讓軟體繼續留在您的電腦上.
- ;定義解壓說明
- ;StatusExtractFiles=解壓並複製主程式檔案及相關庫檔案...
- ;用於在使用者系統中建立,修改或刪除ini檔案健值
- [INI]
- Filename: "{app}\cfg.ini"; Section: "Startup Options"; Flags: uninsdeletesection
- Filename: "{app}\cfg.ini"; Section: "Startup Options"; Key: "server ip"; String: "127.0.0.1"
- Filename: "{app}\cfg.ini"; Section: "Startup Options"; Key: "server port"; String: "8080"
- ;用於在使用者系統中建立,修改或刪除登錄檔健值
- [Registry]
- Root: HKLM ;SubKey:"Software\ISsample";ValueType:dword;ValueName:config;ValueData:10 ;Flags:uninsdeletevalue
- ;在執行指令碼
- [code]
- //全域性變數
- var MyProgChecked: Boolean;
- //判斷程式是否存在
- //初始華程式事件
- function InitializeSetup(): boolean;
- var Isbl: boolean; //宣告變數
- var Isstr: string;
- begin //開始
- Isbl := true; //變數賦值
- Isstr := '歡迎';
- if RegValueExists(HKEY_LOCAL_MACHINE, 'SOFTWARE\ISsample', 'config') then
- begin
- MsgBox('已安裝過,請先解除安裝在安裝',mbConfirmation, MB_OK);
- isbl := false;
- end else
- begin
- //MsgBox('無值',mbConfirmation, MB_OK);
- isbl := true;
- end;
- //下面是個麻煩的 條件語句 end else 注意
- //if MsgBox(Isstr, mbConfirmation, MB_OKCANCEL) = IDOK then
- //begin
- // isbl := true;
- // MsgBox('執行了', mbConfirmation, MB_OK);
- //end else
- //begin
- // isbl := false;
- //MsgBox('執行了', mbConfirmation, MB_OK);
- //end;
- Result := Isbl;
- end; //結束
- procedure CurStepChanged(CurStep: TSetupStep);
- var Isstr :string;
- begin
- if CurStep=ssInstall then //實際安裝前呼叫
- begin
- //MsgBox('CurStepChanged:實際安裝前呼叫', mbConfirmation, MB_OKCANCEL); //安裝完成後呼叫
- end;
- if CurStep=ssPostInstall then
- begin
- Isstr := ExpandConstant('{tmp}\tmp.rar');
- // if FileExists(Isstr) then
- // begin
- // MsgBox('檔案存在',mbConfirmation, MB_OK);
- // end else
- // begin
- // MsgBox('檔案不存在',mbConfirmation, MB_OK);
- // end;
- // MsgBox('CurStepChanged:實際安裝後呼叫', mbConfirmation, MB_OKCANCEL);
- end;
- end;
- //下一步 按鈕按鈕 事件
- function NextButtonClick(CurPageID: Integer): Boolean;
- var ResultCode: Integer;
- var IsSetup : Boolean;
- begin
- IsSetup := true ;
- case CurPageID of
- wpSelectDir:
- MsgBox('NextButtonClick:' #13#13 'You selected: ''' + WizardDirValue + '''.', mbInformation, MB_OK); //WizardDirValue 路徑
- wpSelectProgramGroup:
- MsgBox('NextButtonClick:' #13#13 'You selected: ''' + WizardGroupValue + '''.', mbInformation, MB_OK); //開始選單名
- wpReady:
- begin
- if not RegValueExists(HKEY_LOCAL_MACHINE, 'SOFTWARE\Test', 'config') then begin
- if MsgBox('程式執行需要Test.ext,是否安裝!', mbConfirmation, MB_YESNO) = idYes then begin
- ExtractTemporaryFile('test.exe');
- if not Exec(ExpandConstant('{tmp}\test.exe'), '', '', SW_SHOWNORMAL, ewWaitUntilTerminated, ResultCode) then
- MsgBox('Test.exe出錯:' #13#13 ' ' + SysErrorMessage(ResultCode) + '.', mbError, MB_OK);
- end else begin
- IsSetup := false ;
- end ;
- BringToFrontAndRestore();
- end;
- end;
- end;
- Result := IsSetup;
- end;
相關推薦
一個比較完整的Inno Setup 安裝指令碼
[Setup] ; 注: AppId的值為單獨標識該應用程式。 ; 不要為其他安裝程式使用相同的AppId值。 ; (生成新的GUID,點選 工具|在IDE中生成GUID。) AppId={{A9861883-31C5-4324-BD9A-DC3271EEB675} ;程式名 AppName=IS
專案inno setup安裝指令碼,帶檢測.net framework
幾乎完全不懂pascal指令碼,只是看過這種安裝指令碼,搞了三天才搞好,各種測試,各種改,終於做出了一個比較完整的安裝包。 要說,還是有很多改進的地方,比如沒有使用procedure,inno setup可以依照勾選項進行不同的安裝步驟,安裝完之後可以也可以進行相應的操作,
Inno Setup安裝程序單例運行
() 發現 避免 創建 pre 已運行 procedure str tex 1、緣起: KV項目下載底層升級包,老是報出升級文件占用問題,反復分析,不得其所。 今天突然發現同時啟動多個升級程序實例,分析認為安裝包同時被調用多次,導致實例訪問文件沖突,導致此問題。 安裝程序由
inno setup 安裝前判斷進程是否存在,以及停止相應進程<轉>
mat copy ger eve runt don rec run TP 打包的時候遇到了這樣的需求:假似用戶都是傻瓜 式操作,如果更新安裝程序的時候,之前的老程序還在運行這個時候如果你去提示讓用戶吧老程序手動退掉也不現實。 所以當遇到這
virtualenv簡介以及一個比較折騰的scrapy安裝方法
direct let figure 軟件包 免費 fig 構建 作者 ack 本文來自網易雲社區作者:沈高峰virtualenv + pip 安裝python軟件包是一種非常好的選擇,在大部分情況下安裝python軟件包是不需要求助於sa的。使用自己的一個工作副本也是寫py
inno setup 安裝介面進度條控制
用inno setup製作安裝包會發現一個問題。 預設安裝時候的進度條只是檔案提取的進度。 當檔案提取完成了進度條就已經100% 這時候如果你[Run] 裡面執行的東西比較多,就會顯得安裝進度 100%之後一直卡在那裡,卡了半天才
一個比較完整的登陸和註冊後臺
資料庫類 conn.php <?php class opmysql{ private $host = 'localhost'; //伺服器地址 private $name = 'root'; //登
IntelliJ IDEA 搭建一個比較完整的網站例項 4
在前面的文章中,我們先搭建了一個struts2的專案,然後添加了maven和spring框架。那麼接下來需要做的事就很明顯了,那就是新增hibernate框架,組成一個完整的SSH專案。 開啟工程,我們可以看到如下提示: 點選File——Project Structure ,如圖:
IntelliJ IDEA 搭建一個比較完整的網站例項 5
接上一篇,在hibernate新增成功之後,我們找到hibernate.cfg.xml檔案,可以看到,系統自己建立的檔案有一段是標紅的,這是因為我們還沒有匯入mysql的jar包。我們可以直接從網上找一個mysql的jar包,新增到專案中。 如圖,這是我從網上下載下來的jar包,將其複製貼上
Inno Setup 安裝前解除安裝原程式
很多時候我們需要在安裝檔案之前解除安裝原有的程式而不是覆蓋安裝,本文的code就是實現了這樣的功能。實現原理是:從註冊表'UninstallString'項中讀取解除安裝資訊,用Exec進行靜默解除安裝。下面code中APP_NAME為你的程式名,可以去註冊表中確認。function InitializeSe
Android AIDL -通過一個比較完整的Demo快速運用
前端時間專案運用到AIDL,關於AIDL客戶端以及AIDL服務端網路上沒有一個比較完備的Demo. 而參考Demo無疑是一個比較快速的學習方法.因此,我寫了一個Demo. 供大家參考,也非常歡迎大家對其中寫的不好的地方進行指正. 好了,首先簡述下基本功能: 在AIDL 客
Inno Setup安裝時判斷並關閉已經執行的應用exe
就很簡單的一個功能,Inno setup製作的安裝包,在安裝時候,判斷是否之前有本程式的實力在執行,執行的話終止他,貌似很簡單,折騰了我1小時。 網上找的好多方案,不理想不理想!我就給大家列舉下這些我認為不理想的原因! 網上方案1: 在Code段用Find
Inno Setup Pascal指令碼程式碼集錦
[code]procedure CurPageChanged(CurPageID: Integer);begincase CurPageId ofwpWelcome : MsgBox('wpWelcome ', mbInformation, MB_OK);wpLicense
inno setup 安裝 .net 服務
inno setup 指令碼 #define MyAppName "getService" #define MyAppVersion "1.0" #define MyAppPublisher "AZ Studio" #define MyAppURL "http://sou
[js外掛開發教程]實現一個比較完整的開源級選項卡外掛
在這篇文章中,我實現了一個基本的選項卡功能:請猛擊後面的連結>> [js外掛開發教程]原生js仿jquery架構擴充套件開發選項卡外掛. 還缺少兩個常用的切換(自動切換與透明度漸變),當然有朋友會說,還有左右,上下等等,這些動畫會放在焦點圖(幻燈片)外掛
Inno Setup安裝、解除安裝時判斷是否程式正在執行
var ErrorCode: Integer; IsRunning: Integer; // 安裝時判斷客戶端是否正在執行 function InitializeSetup(): Boolean; begin Result :=true; //安裝程式
一個比較完整的WindowsFormsApplication實現
這是前兩天課堂上的例子,提供了一個自定義WindowsFormsApplication的範例,主要包括如下的功能 1. 單一例項 2. 閃屏 3. 登陸視窗 4. 工作列圖示和選單 需要注意的是,WindowsFormsApplicationBase這個類是要新增Micros
20180806一個linux下集成了安裝指令碼的工具Fantastico
Fantastico或稱為 "Fantastico De Luxe"是被各家網路主機供應商所常使用的自動化指令碼安裝工具軟體。只需在Fantastico的幾次點選,就能輕鬆建立網站。Fantastico被認為是在cPanel中的一個“一鍵式”的自動安裝程式,同時還提供了一個可
Inno Setup 安裝前卸載原程序
而不是 ide 人工智 exec 教程 pre string move art 分享一下我老師大神的人工智能教程吧。零基礎!通俗易懂!風趣幽默!還帶黃段子!希望你也加入到我們人工智能的隊伍中來!http://www.captainbed.net 很多時候我們需要在
[Inno Setup] 安裝完成後調用函數
test dir pan color perf 完成後 通配 安裝 install 如果使用了通配符,每拷貝一個文件,函數都會被調用一次。 Source: "path\test.exe"; DestDir: {app}; AfterInstall: LoadPerfC