回答
你有兩個選擇:
- 使用ChangeUI指令與資源黑客創建一個自定義/調整UI沿(NSIS附帶在contrib文件夾的默認和現代化的用戶界面的,你可以只修改那些)
- 調整在與展會回調的系統插件(調用用戶:: SetWindowPos)運行時該對話框的頁面
你必須調整使用資源黑客的所有對話框。 標準對話框(內部)尺寸爲300 * 140個單位,根據需要增加。
不要忘記在這個新的大小上增加所有的對話框(許可頁面,安裝頁面,目錄頁面等)。
這是一個很大的任務。以一種比較靈活的方式實現它的工作步驟如下。
下載資源黑客:http://www.angusj.com/resourcehacker/
,如果你要編輯的Unicode或NSIS的ANSI版本然後再決定。你可以做到這一點,但爲什麼要麻煩。首先找到您的Program Files \ NSIS文件夾。如果您正在爲ANSI編譯,這將成爲下一步中以下目錄的BASE文件夾。如果您正在編譯unicode,那麼進入Program Files \ NSIS \ Unicode文件夾,這是您下一步操作的基礎文件夾。
查看\ Contrib \ UIs文件夾。該文件夾存儲一堆可執行文件。根據您使用的MUI2的配置,您需要編輯相應的文件AND modern.exe。該文件的版本取決於如果歐有一個標題圖片,如果它的正確與否調整等
例如,在我的情況,我在安裝腳本有這些定義
!define MUI_HEADERIMAGE
!define MUI_HEADERIMAGE_RIGHT
現在,當我查看\ Contrib \ Modern UI 2 \ Interface.nsh時,我可以很容易地找出需要編輯的文件。這是我看:
!insertmacro MUI_DEFAULT MUI_UI "${NSISDIR}\Contrib\UIs\modern.exe"
!insertmacro MUI_DEFAULT MUI_UI_HEADERIMAGE "${NSISDIR}\Contrib\UIs\modern_headerbmp.exe"
!insertmacro MUI_DEFAULT MUI_UI_HEADERIMAGE_RIGHT "${NSISDIR}\Contrib\UIs\modern_headerbmpr.exe"
!insertmacro MUI_DEFAULT MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico"
!insertmacro MUI_DEFAULT MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico"
!insertmacro MUI_DEFAULT MUI_BGCOLOR "FFFFFF"
由於我使用的是MUI_HEADERIMAGE_RIGHT,我會編輯modern_headerbmpr.exe文件。
現在,打開Resource Hacker並加載您想要編輯的文件。資源黑客有一個GUI,所以當你逐步瀏覽每個對話框和對話框上的每個控件時,按下'重新編譯'後你可以看到GUI改變的一面。這部分非常簡單。瀏覽所有對話框(爲什麼不),並編輯控件和大小,包括主安裝程序的大小。在這個文件中,只有一個,所以你還需要打開modern.exe,它包含進入安裝程序頁面的子控件。再次,通過所有的對話框,並改變所有的大小,使每個控件看起來不錯。編譯並將文件保存回此文件夾。
加分:對於測試,只需覆蓋原始文件。你做了備份,對吧?對於部署,請爲您編輯的每個文件命名新文件,如「modern-wide.exe」。稍後,我們可以用一點魔力動態地在這些之間切換。
重新編譯你的安裝程序,現在你應該看到一個新的大小安裝程序。
如果你不這樣做,請檢查你是否在正確的ANSI與UNICODE文件夾中,否則你的更改將不起作用。
但是,有些屏幕會動態添加控件。作爲一個例子,看看\ Contrib \ Modern UI 2 \ Pages \ Welcome.nsh。
此文件在代碼中添加標題標籤和歡迎文本,而不是通過exe文件。啊,我知道!所以找到宏:
!macro MUI_FUNCTION_WELCOMEPAGE PRE LEAVE
而且這些代碼:
${NSD_CreateBitmap} 0u 0u 109u 193u ""
...
${NSD_CreateLabel} 120u 10u 195u ${MUI_WELCOMEPAGE_TITLE_HEIGHT}u "${MUI_WELCOMEPAGE_TITLE}"
...
${NSD_CreateLabel} 120u ${MUI_WELCOMEPAGE_TEXT_TOP}u 195u 130u "${MUI_WELCOMEPAGE_TEXT}"
正如你可以看到,這裏的單位是X Y寬度高度,所以現在你去修改這些控件。當然,如果你不使用歡迎頁面,請不要打擾。但是你可能需要編輯這種不適合你的頁面。
您可以覆蓋原始文件,或者再次使用文件名後綴「-wide」保存文件。
現在,你基本完成了!
現在,爲了使這更容易切換,我會假設你救了:現在
welcome.nsh as welcome-wide.nsh
modern.exe as modern-wide.exe
and let's say modern_headerbmpr.exe as modern_headerbmpr-wide.exe
,在您的安裝,添加這個定義之前,包括MUI2.nsh:
!define MUI_ALTERNATE_SIZE_EXT "-wide"
在interface.nsh中,將代碼更改爲:
!ifdef MUI_ALTERNATE_SIZE_EXT
!insertmacro MUI_DEFAULT MUI_UI "${NSISDIR}\Contrib\UIs\modern${MUI_ALTERNATE_SIZE_EXT}.exe"
!insertmacro MUI_DEFAULT MUI_UI_HEADERIMAGE "${NSISDIR}\Contrib\UIs\modern_headerbmp.exe"
!insertmacro MUI_DEFAULT MUI_UI_HEADERIMAGE_RIGHT "${NSISDIR}\Contrib\UIs\modern_headerbmpr${MUI_ALTERNATE_SIZE_EXT}.exe"
!insertmacro MUI_DEFAULT MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico"
!insertmacro MUI_DEFAULT MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico"
!insertmacro MUI_DEFAULT MUI_BGCOLOR "FFFFFF"
!else
!insertmacro MUI_DEFAULT MUI_UI "${NSISDIR}\Contrib\UIs\modern.exe"
!insertmacro MUI_DEFAULT MUI_UI_HEADERIMAGE "${NSISDIR}\Contrib\UIs\modern_headerbmp.exe"
!insertmacro MUI_DEFAULT MUI_UI_HEADERIMAGE_RIGHT "${NSISDIR}\Contrib\UIs\modern_headerbmpr.exe"
!insertmacro MUI_DEFAULT MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico"
!insertmacro MUI_DEFAULT MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico"
!insertmacro MUI_DEFAULT MUI_BGCOLOR "FFFFFF"
!endif
這實際上將您的安裝程序從常規切換爲「-w ide「,當你將MUI_ALTERNATE_SIZE_EXT定義爲」全「時。請注意,我如何將$ {MUI_ALTERNATE_SIZE_EXT}直接添加到包含我更改的文件的文件名中,並且您當然應該在開始時最終更改的文件中執行此操作。
現在,你還需要做到這一點的MUI2.NSH文件,像這樣:
!ifdef MUI_ALTERNATE_SIZE_EXT
!include "Pages\Components.nsh"
!include "Pages\Directory.nsh"
!include "Pages\Finish.nsh"
!include "Pages\InstallFiles.nsh"
!include "Pages\License.nsh"
!include "Pages\StartMenu.nsh"
!include "Pages\UninstallConfirm.nsh"
!include "Pages\Welcome${MUI_ALTERNATE_SIZE_EXT}.nsh"
!else
!include "Pages\Components.nsh"
!include "Pages\Directory.nsh"
!include "Pages\Finish.nsh"
!include "Pages\InstallFiles.nsh"
!include "Pages\License.nsh"
!include "Pages\StartMenu.nsh"
!include "Pages\UninstallConfirm.nsh"
!include "Pages\Welcome.nsh"
!endif
當你編輯多個文件,只需保持一個版本,每一個新的UI,你在不同的文件名創建,現在你可以用一個定義切換安裝程序的UI風格。您可以根據需要命名文件,並將此方案擴展到可能遇到問題的其他區域。
這不是一件容易的事,但它可以做到。
這是一個偉大的** **的答案。 @ilya,它也應該被授予正確的答案。我按照說明操作。做完這些之後,我覺得我已經在NSIS安裝系統上獲得了更多的控制權。謝謝安迪。 – Spiralis 2016-03-29 15:01:34
- 1. tcpdf肖像自定義頁面大小
- 2. TCPDF自定義頁面大小
- 3. Wkhtmltopdf + cakepdf - 自定義頁面大小
- 4. 帶自定義標題文本的NSIS自定義頁面
- 5. NSIS定義裏面定義
- 6. NSIS-如何動態顯示特定的自定義頁面?
- 7. asp.net datagrid自定義分頁與各種大小的頁面
- 8. CUPS - Cups4j - 定義頁面/紙張大小
- 9. 自定義一個已存在的NSIS MUI2頁面
- 10. 自定義NSIS卸載程序確認頁面
- 11. 自定義NSIS安裝程序的完成頁面
- 12. NSIS:訪問自定義頁面組合框的值?
- 13. 自定義功能在NSIS頁面消失
- 14. Excel VBA,在Word中設置自定義頁面大小
- 15. 如何使用自定義頁面大小打印KendoUI Widget(BarCode)?
- 16. PageSetupDialog - 保存並加載自定義頁面大小問題
- 17. 自定義網格頁面大小如何工作?
- 18. 如何打印自定義頁面大小的肖像iTextSharp的
- 19. Bootstrap 3:根據頁面設置自定義容器大小
- 20. C#.NET iTextSharp中的自定義頁面大小
- 21. 確定頁面表大小
- 22. HTML5固定大小頁面
- 23. 與自定義大小
- 24. QR碼自定義大小
- 25. DockLeft自定義大小
- 26. 與自定義大小
- 27. NSIS卸載頁面定製功能已經定義
- 28. 指定RadGrid的最大頁面大小?
- 29. NSIS選擇頁面
- 30. Qt自定義小部件大小
有一個默認的頁面大小,如果想改變它到我的比例 – ilya 2011-04-03 15:10:56