Inno setup定制安裝界面


Innosetup功能很強大,可以通過它提供的Wizard接口來定制界面,但我對PASCAL語言不熟悉,也不清楚通過那種接口可改動的范圍有多大,最后做出來的效果是否好,所以選擇了通過一個DLL來實現我的界面。
 
首先,腳本中增加如下設置,以禁至所有Inno setup自身顯示的界面:
DisableDirPage=yes
DisableFinishedPage=yes
DisableProgramGroupPage=yes
DisableReadyMemo=yes
DisableStartupPrompt =yes
DisableWelcomePage=yes
DisableReadyPage=yes
 
但ready to install界面還是會顯示,需要去掉Ready to install界面,方法是重新編譯inno setup,下載代碼后使用 Delphi2009(或更新)編譯unicode版本的inno setup(非unicode的需要更多delphi老版本,編譯會失敗),去掉wizard.pas的第2006到2009行。
將新生成的文件拷到原inno setup的安裝目錄。
 
  //if (PageID = wpReady) and not Visible then begin
  // Result := False;
  // Exit;
  //end;
定制安裝界面的DLL需要注意的幾點:
1,不能在新建的線程中創建界面,否則在任務欄會看到安裝程序有兩個縮略圖。
2,如果要讓一個函數返回后窗口不消失,只需要讓窗口的消息循環函數返回即可,以后還可以重新進入循環。
 
定制界面DLL的可工作目錄
定制卸載界面時發現,把DLL放到system32目錄下就不能運行,在安裝程序的目錄下能運行。
但程序的安裝目錄可能會被用戶修改,引用DLL中的函數時,不支持code,所以一旦用戶修改程序的安裝路徑,就無法調用到該DLL。
將它安裝到{win}目錄,即可解決這些問題。
猜測:system32下的程序在64位系統上都是64位,我的DLL是32位程序,所以在system32目錄就無法運行,但在其它目錄是可以的。
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM