安装使用NSIS开发的软件时,如果在服务器操作系统中安装,应该如何弹出消息?

时间:2019-04-16 10:42:13

标签: nsis

在安装使用NSIS开发的软件时,如果在服务器操作系统中安装,应该如何弹出消息。

以下是不受支持的操作系统。在安装软件的过程中,我应该显示弹出消息。

Windows Server 2003 
Windows Server 2003 R2
Windows Server 2008
Windows Server 2008 R2 
Windows Server 2012 
Windows Server 2012 R2

我面临着难以实施的困难。有人可以指导我吗?

2 个答案:

答案 0 :(得分:0)

您可以使用WinVer.nsh来检测Windows版本

!include "LogicLib.nsh"    
!include "WinVer.nsh"

Function .onInit
    ${If} ${IsServerOS}
        MessageBox MB_OK "Running on Windows Server."
        Quit
    ${EndIf}
FunctionEnd

如果需要更具体,可以将其与AtLeastWin* / AtMostWin*结合使用,其中*是您要定位的版本(例如AtLeastWin2003 / AtLeastWin2012R2

答案 1 :(得分:0)

使用WinVer.nsh检测Windows版本:

!include WinVer.nsh
!include LogicLib.nsh
!define /IfNDef ERROR_INSTALL_REJECTED 1654

Function .onInit
${If} ${IsServerOS}
    ${If} ${AtLeastWin2003}
    ${AndIf} ${AtMostWin2012R2}
        MessageBox mb_IconStop|mb_OK "Not allowed to run on this version of Windows for some reason!" /SD IDOK
        SetErrorLevel ${ERROR_INSTALL_REJECTED}
        Quit
    ${EndIf}
${EndIf}
FunctionEnd

请记住,这不会阻止NT4和2000或Server 2016的服务器版本。您只需要${IsServerOS}检查是否要阻止所有服务器版本。