При установке программного обеспечения, разработанного с использованием NSIS, как вывести всплывающее сообщение при установке в серверных операционных системах - PullRequest
0 голосов
/ 16 апреля 2019

При установке программного обеспечения, разработанного с использованием NSIS, как вывести всплывающее сообщение при установке в серверных операционных системах.

Ниже приведены неподдерживаемые операционные системы. В тех случаях, когда при установке программного обеспечения я должен показать всплывающее сообщение.

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

Мне трудно это реализовать. Может ли кто-нибудь, пожалуйста, наставить меня на это?

Ответы [ 2 ]

0 голосов
/ 16 апреля 2019

Используйте 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}, если выхочу заблокировать все версии сервера.

0 голосов
/ 16 апреля 2019

Вы можете использовать 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)

...