删除 NSIS 安装程序底部的按钮窗格

问题描述 投票:0回答:2

我正在使用 NSIS 创建一个仅包含自定义页面的安装程序。 自定义页面不应该有默认按钮(后退、下一页或取消),而只能在页面中央有 1 个按钮。 有什么方法可以删除整个底部窗格,正如我在所附图像中突出显示的那样? 我隐藏了按钮,但我想删除分隔线及其下面的部分。

这是我的代码:

;--------------------------------
;Include Modern UI
  !include "MUI2.nsh"

;--------------------------------
;General

  ;Name and file
  Name "Custom Test"
  OutFile "custom_installer.exe"

  ;Default installation folder
  InstallDir "$LOCALAPPDATA\Custom Test"

  ;Remove default branding text of Nullsoft
  BrandingText " "

;--------------------------------
;Interface Settings
  !define MUI_LICENSEPAGE_BGCOLOR "814EFA"
  !define MUI_ABORTWARNING
  !define MUI_BGCOLOR "000000"

;--------------------------------
;Functions
Function Start
  nsDialogs::Create 1044
  Pop $0
    SetCtlColors $0 222425 FBFBFB
  
  ${NSD_CreateButton} 20 170 90% 15u INSTALL

  GetDlgItem $0 $HWNDPARENT 3 ; Back Button
  GetDlgItem $1 $HWNDPARENT 1 ; Next/Close Button
  GetDlgItem $2 $HWNDPARENT 2 ; Cancel Button
  
  ShowWindow $0 ${SW_HIDE}
  ShowWindow $1 ${SW_HIDE}
  ShowWindow $2 ${SW_HIDE}

    nsDialogs::Show
FunctionEnd

;--------------------------------
;Pages

  Page custom Start
  !insertmacro MUI_PAGE_COMPONENTS

;--------------------------------
;Languages
 
  !insertmacro MUI_LANGUAGE "English"

;--------------------------------
;Installer Sections

Section "Dummy Section" SecDummy

  SetOutPath "$INSTDIR"

SectionEnd

这就是安装程序页面现在的样子:

nsis
2个回答
0
投票

如何使用 SetBrandingText " " 隐藏水平线并使用 SetCtlColors $0 222425 FBFBFB 为底部区域着色,这样它看起来就像对话框的其余部分?

这对您来说可以接受吗?或者您想让对话框变小(降低其高度)?


0
投票

我也有同样的挣扎,直到我找到这个介绍WinSpy++的页面

https://www.catch22.net/projects/winspy/

您可以使用此工具并将鼠标悬停在分隔线上以获取控件 ID

就我而言,它是:0xFFFFFFFF

然后你可以像其他控件一样隐藏它:

GetDlgItem $0 $HWNDPARENT 0xFFFFFFFF ShowWindow $0 ${SW_HIDE}
注意这具有全局效果并影响安装程序的所有 nsdialog,
所以你必须使用 ${SW_SHOW} 在下一页预打开功能中再次将其带回来

© www.soinside.com 2019 - 2024. All rights reserved.