Version plug-in: Difference between revisions

From NSIS Wiki
Jump to navigationJump to search
Line 10: Line 10:


== Description ==
== Description ==
Windows OS contain special API for OS version detecting.  
With this plugin you are able to determine which version of windows you are running. Technically it is using the GetVersionEx() method from the "kernel32.dll".
But standard NSIS 2 pack not use this.


My special plugin "Version.dll" use OS API (function GetVersionEx() from "kernel32.dll") for OS version detecting.
'''Features:'''
 
*check for a specific windows version:
Plugin contain function:
**IsWindows95
*GetWindowsVersion (get major, minor version, build number, platform id, service pack name);
**IsWindows98
*simply OS detect function (IsWindows31, IsWindows95, IsWindows98, IsWindowsME, IsWindowsNT351, IsWindowsNT40, IsWindows2000, IsWindowsXP, IsWindows2003);
**IsWindowsME
*simply OS platform detect function (IsWindowsPlatformNT, IsWindowsPlatform9x);
**IsWindowsNT351
*simply "good" OS detect function (IsWindows98orLater);
**IsWindowsNT40
 
**IsWindows2000
Size of plugin "version.dll" is 6144 bytes
**IsWindowsXP
**IsWindows2003
**IsWindowsXPx64
**IsWindowsVista
**IsWindowsServer2008
**IsWindows7
**IsWindowsServer2008R2
**IsWindows8
**IsWindowsServer2012
*get all relevant windows versioning information by calling the 'GetWindowsVersion' method:
**major version
**minor version
**build number
**platform id
**service pack name
**product type
*detect the windows platform type by calling 'IsWindowsPlatformNT()' or 'IsWindowsPlatform9x'


== Usage Example ==
== Usage Example ==

Revision as of 16:24, 20 February 2013

Author: denis_gorbunov (talk, contrib)


Links

Version 0.3 (20. feb 2013)
NSIS_version_plugin_03.zip (69 KB)

Release builds with VS2010 Premium (only older 0.2 release)

ANSI: http://db.tt/cbyN0KJh Unicode: http://db.tt/OfllzHW7

Description

With this plugin you are able to determine which version of windows you are running. Technically it is using the GetVersionEx() method from the "kernel32.dll".

Features:

  • check for a specific windows version:
    • IsWindows95
    • IsWindows98
    • IsWindowsME
    • IsWindowsNT351
    • IsWindowsNT40
    • IsWindows2000
    • IsWindowsXP
    • IsWindows2003
    • IsWindowsXPx64
    • IsWindowsVista
    • IsWindowsServer2008
    • IsWindows7
    • IsWindowsServer2008R2
    • IsWindows8
    • IsWindowsServer2012
  • get all relevant windows versioning information by calling the 'GetWindowsVersion' method:
    • major version
    • minor version
    • build number
    • platform id
    • service pack name
    • product type
  • detect the windows platform type by calling 'IsWindowsPlatformNT()' or 'IsWindowsPlatform9x'

Usage Example

; if "version.dll" copied in NSIS plugin sub-directory
; this line is not necessary
 
!addplugindir "plugins"
 
 
; it is not example
; it is for this empty intallation only
 
OutFile "example_Version_NSIS_plugin.exe"
 
 
Section Dummy
; it is not example
; it is for this empty intallation only
SectionEnd
 
 
; variables declaration
 
var TempResult
var MajorVersion
var MinorVersion
var BuildNumber
var PlatformID
var CSDVersion
 
 
Function .onInit
 
  ; detect Windows XP
  ; it is simply
 
  ; call plugin dll function 
 
  Version::IsWindowsXP
 
  ; get result
 
  Pop $TempResult
 
  ; check result
 
  StrCmp $TempResult "1" ItIsWindowsXP IsIsNotWindowsXP
 
  ItIsWindowsXP:
  MessageBox MB_OK "This OS is Windows XP"
  Goto Go2
 
  IsIsNotWindowsXP:
  MessageBox MB_OK "This OS is not Windows XP"
  Goto Go2
 
 
  ; get Windows OS version info
 
  Go2:
 
  ; call plugin dll function 
 
  Version::GetWindowsVersion

  ; get result
 
  Pop $MajorVersion
  Pop $MinorVersion
  Pop $BuildNumber
  Pop $PlatformID
  Pop $CSDVersion
 
  ; show result
  MessageBox MB_OK "$PlatformID-platform, version $MajorVersion.$MinorVersion, build $BuildNumber, $CSDVersion"
 
FunctionEnd