如何在我的设置中使用nsis设置背景?

时间:2015-05-13 15:59:16

标签: installation nsis

我正在为我的应用创建一个setup.exe,并且我正在使用nsis安装程序创建者,我正在ubuntu上进行编译。

现在我想自定义设置以使用这样的背景图像显示:

nsis setup

如何使用nsis在我的设置中添加背景?

3 个答案:

答案 0 :(得分:2)

你的照片实际上就是这张照片:http://www.graphical-installer.com/joomla/images/stories/gallery/projects/gallery-4.jpg

因此,您可以使用该软件 - NSIS图形安装程序 - 无需任何努力或编程即可实现完全相同的效果:)

作为该软件的作者,我可以说实现这样的设计非常容易:

  1. 在安装程序UI上添加自定义控件(使用ResHacker) - 更好的方法是创建新的UI文件,以便以前的安装程序不会损坏
  2. 将文件从文件加载到控件中 - 使用WinAPI调用或某些NSIS包装器。请记住,图片路径必须位于最终用户计算机的某个位置,例如$气温
  3. (与 hypheni 相同,但有更多细节)

答案 1 :(得分:1)

一条线索是,使用资源黑客编辑所需的UI可执行文件,并在其上添加图片控件。

您可以在系统路径中找到可用的UI模块: C:\ Program Files \ NSIS \ Contrib \ UIs。

然后,一旦完成编辑,使用脚本中的!define MUI_UI定义自定义UI并相应地进行处理。

答案 2 :(得分:1)

有关详细信息,请参阅以下代码段

Var hBitmap
!define MUI_CUSTOMFUNCTION_GUIINIT CustomGUIInit

Function CustomGUIInit
    InitPluginsDir
    ReserveFile `${BMP_HEAD}`
    File `/ONAME=$PLUGINSDIR\head.bmp` `${BMP_HEAD}`

    GetDlgItem $R1 $HWNDPARENT 1034
    System::Call `user32::LoadImage(i 0, t "$PLUGINSDIR\head.bmp", i ${IMAGE_BITMAP}, i 0, i 0, i ${LR_LOADFROMFILE}) i.s`
    Pop $hBitmap
    SendMessage $R1 ${STM_SETIMAGE} ${IMAGE_BITMAP} $hBitmap
FunctionEnd

上面的代码从user32.dll调用LoadImage Win32 API函数,并通过SendMessage调用设置为windows控件。