2011-04-03 77 views
3

我想創建一個頁面顯示我的網站(nsWeb::ShowWebInPage)。 問題是,它無法顯示整個頁面。nsis自定義頁面大小

如何在此頁面上定義新的尺寸(高x寬)?

+0

有一個默認的頁面大小,如果想改變它到我的比例 – ilya 2011-04-03 15:10:56

回答

3

你有兩個選擇:

  • 使用ChangeUI指令與資源黑客創建一個自定義/調整UI沿(NSIS附帶在contrib文件夾的默認和現代化的用戶界面的,你可以只修改那些)
  • 調整在與展會回調的系統插件(調用用戶:: SetWindowPos)運行時該對話框的頁面
1

你必須調整使用資源黑客的所有對話框。 標準對話框(內部)尺寸爲300 * 140個單位,根據需要增加。

不要忘記在這個新的大小上增加所有的對話框(許可頁面,安裝頁面,目錄頁面等)。

8

這是一個很大的任務。以一種比較靈活的方式實現它的工作步驟如下。

下載資源黑客: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風格。您可以根據需要命名文件,並將此方案擴展到可能遇到問題的其他區域。

這不是一件容易的事,但它可以做到。

+1

這是一個偉大的** **的答案。 @ilya,它也應該被授予正確的答案。我按照說明操作。做完這些之後,我覺得我已經在NSIS安裝系統上獲得了更多的控制權。謝謝安迪。 – Spiralis 2016-03-29 15:01:34