Version plug-in: Difference between revisions

From NSIS Wiki
Jump to navigationJump to search
No edit summary
Line 1: Line 1:
{{PageAuthor|denis_gorbunov}}
{{PageAuthor|denis_gorbunov, TeeWeTee}}


== Links ==
== Links ==

Revision as of 16:28, 20 February 2013

Author: denis_gorbunov, TeeWeTee (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