在安装使用NSIS开发的软件时,如果在服务器操作系统中安装,应该如何弹出消息。
以下是不受支持的操作系统。在安装软件的过程中,我应该显示弹出消息。
Windows Server 2003
Windows Server 2003 R2
Windows Server 2008
Windows Server 2008 R2
Windows Server 2012
Windows Server 2012 R2
我面临着难以实施的困难。有人可以指导我吗?
答案 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}
检查是否要阻止所有服务器版本。