cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
vito_ding
Level 2

Set lunch condition to ONLY allow install on windows 8.1

I am try to set a lunch condition to only allow the installer install on a windows 8.1 machine.
I am using VersionNT=603 And WindowsBuild=9600

For a quick test. I trid install the application on win7, win8, win8.1 and win10
The installer will not install on any pre-version 8.1 OSs, but for windows 8.1 and 10.0 both get installed.

Please help me let me know if i am missing anything.

The VersionNT for Windows 8.1 is 603 and Windows 10 is 1000

I have no idea why the application installs on both 8.1 and 10.
Labels (1)
0 Kudos
1 Reply
Stefan_M
Level 5

Take a look at http://helpnet.flexerasoftware.com/installshield22helplib/helplibrary/whats_newIS2015.htm

Support for Windows 10–Based Systems

InstallShield has support for Windows 10.

Targeting Windows 10

On systems with Windows 10, the Windows Installer properties VersionNT and VersionNT64 indicate 603, which was originally introduced as the version number of Windows 8.1. Therefore, it is not possible to create conditions in an .msi package that specifically target Windows 10.

Since Windows Installer 5.0 and Windows 7, DLL custom actions in .msi packages are shimmed to block obtaining the operating system version; the APIs GetVersion, GetVersionEx, and RtlGetVersion return a Windows version of 6.0.6000, which was originally the version number of Windows Vista. Therefore, it is also not possible to obtain the actual version number of Windows from a DLL custom action or from an InstallScript custom action (which is implemented as a DLL).

Because of the aforementioned behavior in Windows Installer, it is not easily possible to detect what version of Windows on which an .msi package is running. In areas where you can specify target system OS requirements, such as the Installation Requirements page in the Project Assistant of Basic MSI and InstallScript MSI projects, the Windows 8.1 option has been renamed as Windows 8.1 or Windows 10 to reflect the new run-time behavior.


To dedect windows 10 check the registry values:
(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion", "CurrentMajorVersionNumber")
(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion", "CurrentMinorVersionNumber")
0 Kudos